본문 바로가기

반응형

개발/DS&Algorithms

(41) GITHUB 방명록
[자료구조] 트리(Tree) 알아보기 (feat.이진 탐색 트리) 개발/DS&Algorithms / 2022. 4. 13. 안녕하세요 이번 게시글에서는 자료 구조 트리(Tree)에 대해서 알아보도록 하겠습니다. 트리(Tree) 트리(Tree)란, 노드들이 나무 가지처럼 연결된 비선형 계층형 자료구조입니다. 아래 그림과 같이 트리 자료구조는 나무를 뒤집은 모양과 유사합니다. 따라서 가장 위에 있는 노드를 Root(뿌리) 노드라고 합니다. 이러한 트리는 탐색(검색) 알고리즘 구현을 위해 많이 사용됩니다. 01. 트리의 종류 02. 알아둘 용어 Node : 트리에서 데이터를 저장하는 기본 요소 (노드에는 다른 연결된 노드에 대한 Branch 정보가 포함) Branch : 간선(edge)라고도 하며, 노드와 노드를 연결하는 선 Root Node : 트리에서 가장 위에 있는 노드 Level : 최상위 노드를 Level 0이라고 했을 ..
[자료구조] 해시(HASH) 알아보기 개발/DS&Algorithms / 2022. 4. 7. 안녕하세요!? 이번 게시글에서는 자료구조 중 해시에 대해서 정리하도록 하겠습니다. 해시는 저장 또는 검색 등에서 자주 활용되는 자료구조입니다. 정확하게는 특정한 함수(알고리즘)를 통해서 값을 추출하고 활용하는 것인데요. 함수(알고리즘)를 어떻게 구현하는지에 따라 사용 용도와 성능이 달라집니다. 이러한 해시는 더 나아가서 암호, 블록체인, 메시지 인증 코드 등에서도 활용됩니다. 해시(Hash) 해시(Hash)는 입력 데이터를 고정된 길이의 데이터로 변환된 값을 말합니다. 다른 말로는 '해시 값(Hash value), 해시 코드, 체크섬' 이라고도 합니다. 이러한 해시는 뒤에서 알아볼 '해시 함수'에 의해서 얻게 됩니다. 간단하게 말하자면, 데이터의 KEY 값이 해시 함수를 통해서 변환된 간단한 정수입니다...
[자료구조] 연결 리스트(Linked List) 알아보기 개발/DS&Algorithms / 2022. 4. 1. 이번 게시글에서는 연결 리스트에 대해서 알아보도록 하겠습니다. 또 다른 말로는 링크드 리스트라고도 합니다. 이러한 연결 리스트에는 단일 연결 리스트와 이중 연결 리스트로 두 가지 방식이 있는데요. 단일 연결 리스트의 단점을 보완하기 위해 이중 연결 리스트가 나왔다고 생각해도 좋습니다. 이제 자세하게 알아보도록 하겠습니다. 01. 단일 연결 리스트(Single Linked List) 링크드 리스트는 데이터들을 저장하기 위해 사용되는 자료구조입니다. 배열과 다르게 떨어진 곳에 존재하는 데이터를 화살표로 연결해서 관리하는 구조입니다. 그 중 단일 연결 리스트 또는 Single Linked List는 데이트들이 한쪽 방향으로만 연결되어 있습니다. 1) 기본 구조와 용어 노드 (Node) : 데이터 저장 단위(데..
[자료구조] 큐(Queue)와 스택(Stack) 알아보기 개발/DS&Algorithms / 2022. 3. 30. 이번 게시글에서는 큐와 스택에 대해서 알아보도록 하겠습니다. 01. 큐(Queue) 큐(Queue)는 자료 구조의 한 가지로, 먼저 집어넣은 데이터가 먼저 나오는 FIFO(First In, First Out) 구조로 저장하는 형식을 말합니다. 또 다르게 큐는 줄을 서는 행위와 유사하다고 할 수 있습니다. FIFO(First-In, First-Out) 또는 LILO(Last-In, Last-Out) 방식 1) Queue의 기능 Enqueue : 큐에 데이터를 넣는 기능 Dequeue : 큐에서 데이터를 꺼내는 기능 2) Queue의 메서드 메서드 설명 boolean add(Object o) 지정된 객체를 Queue에 추가 - 성공하면 true 반환 - 저장공간이 부족하면 IllegalStateExcepti..
[자료구조] 배열(array) 알아보기 개발/DS&Algorithms / 2022. 3. 28. 시작하기 전에 자료구조(Data Structure)는 대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조를 의미합니다. 어떤 데이터 구조를 사용하느냐에 따라 코드의 효율, 메모리 사용량 등이 달라집니다. 그렇기 때문에 데이터 특성에 따라 체계적으로 데이터를 구조화하고 이를 자료구조라고 하게 된 것입니다. 이러한 자료구조에는 대표적으로 [배열, 큐, 스택, 링크드 리스트, 해쉬 테이블, 힙] 등이 있습니다. 이번 게시글에서는 배열에 대해서 알아보도록 하겠습니다. 01. 배열(Array) 배열은 데이터를 나열하고, 각 데이터를 인덱스(Index)에 대응하도록 구성한 데이터 구조입니다. 배열의 자세한 내용은 아래 링크를 참고해주세요. https://kang-james.tistory.com/entry/%E..
[백준] 하노이 탑 이동 순서_11729_자바 개발/DS&Algorithms / 2022. 2. 23. 11729번 Java - 하노이 탑 이동 순서 이번 문제의 분류는 에 해당합니다. 하노이 탑 관련 문제는 재귀의 대표라고 할 수 있습니다. 저는 하노이 탑 원리를 알고 있으면서도, 알고리즘을 구현하는 것이 쉽지 않았습니다. 따라서 이렇게 정리합니다. 시작하기에 앞서서 재귀에 대해서 정리해보도록 하겠습니다. 재귀 함수란? 자기 자신을 호출하는 함수로 종료조건이 충족될 때까지 주어진 작업을 수행하는 것입니다. 팩토리얼을 구하는 문제로 재귀 함수 예시를 들겠습니다. 팩토리얼이란? 하나의 자연수 n이 주어졌을 때, 1부터 n 까지 모든 자연수의 곱을 말합니다. 기호로 표시하면, n! 라고 나타냅니다. 다시 말해서 5!을 구하면, 1 X 2 X 3 X 4 X 5 가 되면서 결과는 120이라는 값을 얻습니다. 이제..

반응형