CS 기초 · 중급
이진 탐색 트리(BST)의 특징과 시간 복잡도에 대해 설명해주세요.
힌트 · 최악의 경우와 균형 트리의 필요성을 생각해보세요.
정렬균형log(n)탐색삽입/삭제
모범답안
이진 탐색 트리는 각 노드가 최대 두 개의 자식 노드를 가지는 트리 구조입니다. 중요한 특징은 각 노드의 왼쪽 서브트리에 있는 모든 값은 해당 노드의 값보다 작고, 오른쪽 서브트리에 있는 모든 값은 해당 노드의 값보다 크다는 점입니다. 이 속성 덕분에 정렬된 데이터를 효율적으로 탐색, 삽입, 삭제할 수 있습니다.
일반적인 경우, 이진 탐색 트리의 탐색, 삽입, 삭제 연산의 평균 시간 복잡도는 O(log n)입니다. 하지만 트리가 한쪽으로 치우쳐진 최악의 경우에는 O(n)까지 늘어날 수 있습니다. 따라서 AVL 트리나 Red-Black 트리처럼 스스로 균형을 맞추는 균형 이진 탐색 트리를 사용하여 최악의 경우에도 O(log n)의 시간 복잡도를 보장하는 것이 중요합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 자료구조 면접 질문
- 이중 연결 리스트(Doubly Linked List)의 특징과 단일 연결 리스트와의 차이점은?
- 동적 배열(Dynamic Array)은 내부적으로 어떻게 크기를 늘리며, 이 과정에서 발생하는 비용을 어떻게 평가하나요?
- HashMap의 동작 원리와 해시 충돌 해결 방법에 대해 설명해주세요.
- 힙(Heap) 자료구조의 특징과 힙 정렬(Heap Sort)의 동작 원리를 설명해주세요.
- 그래프(Graph)의 표현 방법(인접 행렬, 인접 리스트)과 각각의 장단점을 설명해주세요.
- BFS(너비 우선 탐색)와 DFS(깊이 우선 탐색)의 차이점과 사용 사례를 설명해주세요.