본문 바로가기

기본개념2

[자료 구조] 트라이(접두사 트리) 트라이(접두사 트리) 개요 - 트라이는 n-차 트리 중 하나이다. - 각 노드에 문자를 저장하는 자료구조이며, 트리를 이래쪽으로 순회하면 하나의 단어가 나온다. 트라이의 구조 - 트라이의 각 노드는 문자 또는 문자의 끝을 나타낸다. - 문자의 끝을 나타내는 노드를 널 노드라고 부른다. - 위의 예를 보면 노드들을 순회하다가 *노드가 나오면 단어가 완성되는 것을 볼 수 있다. (가장 왼쪽부터 BOOK, BOY, BAN, MAN, M, Z) - 트라이에서 각 노드는 1~(1+26(알파벳의 개수))의 자식 노드를 가질 수 있다. - 이 자료구조는 접두사를 빠르게 찾아보기 위한 방식이다. 길이가 K인 문자열이 주어졌을 때 배열로 구현한 트라이를 이용하면 O(K) 시간에 문자열이 유효한 접두사인지 알 수 있다. .. 2022. 2. 24.
[기본 개념] BFS(Breadth-First Search) BFS(Breadth-First Search) 개요 - 너비 우선 탐색의 기본 개념과 사용하는 상황, 구현 방식을 알아본다. 기본 개념 - 너비 우선 탐색은 루트 노드(임의의 노드)에서 시작해서 인접한 노드를 먼저 탐색하는 방법을 말한다. - 기본 개념만으로는 이해하기 힘든 부분이 있으니 아래 탐색 과정을 보면서 이해하자. 탐색 과정 - 하기의 트리를 1번 노드(임의의 노드)부터 너비 우선 탐색하는 과정을 살펴보자. 1. 1번 노드를 탐색 대상으로 선정한다. 2. 1번 노드를 탐색하고, 1번과 인접해 있는 노드들(다음 탐색 대상)을 조사한다. 3. 2,3,4번 노드를 탐색하고 2,3,4번 노드와 인접해 있는 노드들(다음 탐색 대상)을 조사한다. 4. 5,6,7 노드를 탐색하고 5,6,7번 노드와 인접해 .. 2022. 2. 12.