다음 파이썬 코드는 이진 탐색을 이용하여 자연수 데이터를 탐색하는 함수이다. (가), (나)에 들어갈 내용을 바르게 연결한 것은? (단, ds는 오름차순으로 정렬된 중복 없는 자연수 리스트이고, key는 찾고자 하는 값이다)
def binary(ds, key): low = 0 high = len(ds) - 1 while low <= high: mid = (low + high) // 2 if key == ds[mid]: return mid elif key < ds[mid]: (가) else: (나) return -1
정답 2번
이진 탐색은 정렬된 리스트에서 중앙값과 찾으려는 값을 비교하여 탐색 범위를 절반씩 줄여나가는 알고리즘입니다. 찾는 값 (key)이 중앙값(ds[mid])보다 작으면 탐색 범위의 끝(high)을 중앙값의 왼쪽으로 옮겨야 하므로 high = mid - 1이 되고, 찾는 값이 중앙값보다 크면 탐색 범위의 시작(low)을 중앙값의 오른쪽으로 옮겨야 하므로 low = mid + 1이 됩니다.
콘텐츠 정보
- 자료 유형
- 공개 기출
- 검수 상태
- 내용 검수 완료
- 해설 작성·검수
- 정처LAB 편집 기준
- 최종 검수
- 2026-08-02