CS 기초 · 심화
AVL 트리의 특징과 레드-블랙 트리와의 차이점에 대해 설명해주세요.
힌트 · 균형 조건의 엄격함과 회전 횟수를 비교해보세요.
자가 균형회전균형 트리높이 균형색상 속성
모범답안
AVL 트리는 자가 균형 이진 탐색 트리로, 모든 노드에서 왼쪽 서브트리의 높이와 오른쪽 서브트리의 높이 차이가 최대 1 이하인 균형 조건을 유지합니다. 이 덕분에 탐색, 삽입, 삭제 연산의 시간 복잡도가 O(log n)으로 보장됩니다. 균형이 깨지면 LL, RR, LR, RL 회전을 통해 트리의 균형을 맞춥니다.
레드-블랙 트리 역시 자가 균형 트리이지만, AVL 트리보다 균형 조건이 덜 엄격합니다. 각 노드는 빨간색 또는 검은색으로 칠해져 있으며, 색상 속성을 통해 균형을 유지합니다. AVL 트리보다 삽입/삭제 시 회전 횟수가 적어, 삽입/삭제가 빈번한 경우 성능상 유리할 수 있습니다. 하지만 최악의 경우 탐색 성능은 AVL 트리보다 약간 떨어질 수 있습니다. 즉, AVL 트리는 엄격한 균형을 통해 탐색 성능을 극대화하고, 레드-블랙 트리는 균형 유지 비용을 줄여 삽입/삭제 성능을 향상시킨다고 볼 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 자료구조 면접 질문
- 레드-블랙 트리(Red-Black Tree)의 특징과 균형을 유지하는 방법에 대해 설명해주세요.
- 최소 스패닝 트리(MST)를 구하는 알고리즘(Kruskal, Prim)에 대해 설명해주세요.
- 세그먼트 트리(Segment Tree)의 특징과 사용 사례에 대해 설명해주세요.
- 블룸 필터(Bloom Filter)의 동작 원리와 사용 사례를 설명해주세요.
- 동적 배열(dynamic array)의 capacity 확장 전략에서, 일반적으로 1.5배 또는 2배로 증가시킵니다. 1.5배와 2배 성장 전략의 메모리 재사용 측면 트레이드오프를 설명하고, amortized O(1) append가 성립하는 이유를 분할 상환 분석 관점에서 설명해주세요.
- 대용량 데이터를 다루는 시스템에서 배열 중간 삽입/삭제가 빈번할 때, 연속 메모리 배열 대신 어떤 자료구조를 고려할 수 있나요? gap buffer, rope, 또는 unrolled linked list 같은 대안들의 적용 시나리오와 트레이드오프를 설명해주세요.