Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Algorithm
- 모의SW역량테스트
- gpdb
- 알고리즘
- aws
- 구현
- Trie
- hash table
- boj
- Back tracking
- SQL
- 알고리듬
- Linked list
- Python
- SWEA
- 시뮬레이션
- programmers
- GitHub
- 코딩테스트
- JavaScript
- Vue.js
- Bruth Force
- BFS
- Data Structure
- spring boot
- Priority Queue
- CSV
- django
- 코테
- DFS
Archives
- Today
- Total
hotamul의 개발 이야기
[Algorithm][Data Structure] Trie 본문
myt-algorithm-practice/Samsung SW Certi Pro
[Algorithm][Data Structure] Trie
hotamul 2022. 1. 13. 18:08트라이(Trie)란?
트라이(Trie)의 형태 대해서

- Trie: 트라이(Trie)란 문자열을 저장하고 효율적으로 탐색하기 위한 트리 형태의 자료구조입니다.
- 위에 보이는 트리의 루트에서부터 자식들을 따라가면서 생성된 문자열들이 트라이 자료구조에 저장되어 있다고 볼 수 있습니다. 저장된 단어는 끝을 표시하는 변수를 추가해서 저장된 단어의 끝을 구분할 수 있습니다.
- DFS 형태로 검색을 해보면 사진의 번호에 나와있듯이 to, tea, ted, ten, A, i, in, inn이라는 단어들이 자료구조에 들어가 있음을 알 수 있습니다.
트라이(Trie)의 예시

- 직접 그린 Trie이며 주황색으로 된 노드들이 입력된 문자열들입니다.
- 현재 be, bee, can, cat, cd가 들어가 있습니다.
사용목적
목적
- 사용하는 이유는 문자열의 탐색을 하고자할 때 시간복잡도를 보면 알 수 있습니다. 단순하게 하나씩 비교하면서 탐색을 하는것보다 훨씬 효율적입니다. 단, 빠르게 탐색이 가능하다는 장점이 있지만 각 노드에서 자식들에 대한 포인터들을 배열로 모두 저장하고 있다는 점에서 저장 공간의 크기가 크다는 단점도 있습니다.
- 검색어 자동완성, 사전에서 찾기 그리고 문자열 검사 같은 부분에서 사용할 수 있습니다.
시간 복잡도
- 제일 긴 문자열의 길이를 L 총 문자열들의 수를 M이라 할 때 시간복잡도는 아래와 같습니다.
- 생성시 시간복잡도: O(M*L), 모든 문자열들을 넣어야하니 M개에 대해서 트라이 자료구조에 넣는건 가장 긴 문자열 길이만큼 걸리니 L만큼 걸려서 O(M*L)만큼 걸립니다. 물론 삽입 자체만은 O(L)만큼 걸립니다.
- 탐색시 시간복잡도: O(L), 트리를 타고 들어가봤자 가장 긴 문자열의 길이만큼만 탐색하기 때문에 O(L)만큼 걸립니다.
ref: https://twpower.github.io/187-trie-concept-and-basic-problem
'myt-algorithm-practice > Samsung SW Certi Pro' 카테고리의 다른 글
[Algorithm][C++] BOJ 14425: 문자열 집합 (Hash) (0) | 2022.01.15 |
---|---|
[Algorithm][C++] BOJ 5052: 전화번호 목록 (Trie) (0) | 2022.01.13 |
[Algorithm][C++] BOJ 20920: 영단어 암기는 괴로워 (Hash Table + Heap) (0) | 2021.11.26 |
[Algorithm][C++] BOJ 10825: 국영수 (Priority Queue, Heap) (0) | 2021.11.25 |
[Algorithm][C++] BOJ 1764: 듣보잡 (Hash Table + Merge Sort) (0) | 2021.11.23 |
Comments