CS 기초 · 기초
이진 탐색(Binary Search)의 동작 원리와 시간 복잡도를 설명해주세요.
힌트 · 정렬된 배열에서의 탐색 과정을 설명해보세요.
정렬된 배열중간값탐색 범위log N분할 정복
모범답안
이진 탐색은 정렬된 배열에서 특정 값을 효율적으로 찾는 알고리즘입니다. 작동 원리는 다음과 같습니다. 먼저 배열의 중간값을 확인하고, 찾고자 하는 값이 중간값보다 작으면 배열의 왼쪽 절반을, 크면 오른쪽 절반을 탐색 범위로 좁힙니다. 이 과정을 찾을 때까지 반복합니다.
핵심은 탐색 범위를 절반씩 줄여나간다는 점입니다. 따라서 시간 복잡도는 O(log N)입니다. 예를 들어 16개의 요소가 있는 배열에서 최악의 경우에도 4번 안에 값을 찾을 수 있습니다. 분할 정복 알고리즘의 대표적인 예시라고 할 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 자료구조 면접 질문
- Stack과 Queue의 차이점과 각각의 사용 사례에 대해 설명해주세요.
- 배열(Array)과 연결 리스트(Linked List)의 차이점과 사용 상황에 대해 설명해주세요.
- 시간 복잡도와 공간 복잡도의 개념과 Big-O 표기법에 대해 설명해주세요.
- 재귀(Recursion)와 반복(Iteration)의 차이점과 변환 방법에 대해 설명해주세요.
- 이중 연결 리스트(Doubly Linked List)의 특징과 단일 연결 리스트와의 차이점은?
- 동적 배열(Dynamic Array)은 내부적으로 어떻게 크기를 늘리며, 이 과정에서 발생하는 비용을 어떻게 평가하나요?