알고리즘/문자열
2020. 7. 23.
트라이
여러 문자열을 저장하는 자료구조인 트라이(Trie)에 대해 알아봅시다. 문자열 집합 { "ab", "abc", "acd", "bcd", "be"} 가 있다고 할 때, 트라이는 문자열을 다음과 같은 트리로 저장합니다. 문자열을 트라이에 저장하면 루트 노드에서부터 시작해서, 앞에서부터 한 글자씩 해당하는 자식노드를 따라가게 됩니다. 문자열을 모두 저장했다면, 현재 노드에 저장된 문자열이 있다는 표시를 해 주면 됩니다. (그림에서 짙은 노드) 시간복잡도는 문자열 삽입에 \(O(L)\), 탐색에 \(O(L)\)입니다. (\(L\) : 문자열의 길이) 문자열을 set등의 BST로 저장하는 것보다 삽입, 탐색이 훨씬 빠르고, 해싱으로 저장했을 때의 충돌이 없기 때문에 안정적으로 문자열을 찾고 저장할 수 있습니다. ..