패스잇
CS 기초 · 중급

트라이(Trie) 자료구조의 특징과 사용 사례에 대해 설명해주세요.

힌트 · 문자열 검색, 자동 완성, 접두사 탐색을 생각해보세요.

문자열접두사검색자동완성공간복잡도

모범답안

트라이(Trie)는 문자열을 저장하고 검색하는 데 특화된 트리 형태의 자료구조입니다. 각 노드는 문자 하나를 나타내며, 루트 노드부터 특정 노드까지 이어지는 경로가 하나의 문자열을 형성합니다.

트라이의 가장 큰 특징은 문자열 검색 시 시간 복잡도가 문자열의 길이에 비례한다는 점입니다. 따라서, 많은 문자열 중에서 특정 문자열을 빠르게 찾거나, 특정 접두사로 시작하는 문자열을 찾는 데 매우 효율적입니다.

주요 사용 사례로는 자동 완성 기능, 사전 검색, IP 라우팅 등이 있습니다. 예를 들어, 자동 완성 기능에서 사용자가 'apple'을 입력했을 때, 트라이를 사용하면 'apple', 'applet', 'application'과 같이 'apple'로 시작하는 단어들을 빠르게 찾아 추천해줄 수 있습니다.

다만, 트라이는 각 노드가 자식 노드를 가리키는 포인터를 많이 가지고 있기 때문에, 저장하는 문자열의 종류가 많아질수록 공간 복잡도가 높아질 수 있다는 단점이 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 자료구조 면접 질문

← 자료구조 면접 질문 전체 보기