다음 파이썬 프로그램의 실행 결과는?def search(arr, tar… | [7급 국가직 알고리즘] 26년 1회차 기출문제 상세 페이지
1[7급 국가직 알고리즘] 26년 1회차
다음 파이썬 프로그램의 실행 결과는?def search(arr, target):
low, high = 0, len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == target: return mid
elif arr[mid] < target: low = mid + 1
else: high = mid - 1
return -1
if __name__ == "__main__":
a = [2, 5, 8, 12, 16, 23, 38, 56, 91]
print(search(a, 23))
1
-1
2
4
3
5
4
6
해설
프로그램은 23이 저장된 인덱스인 5를 출력한다.
이진 탐색 추적(배열 인덱스 0~8):
low=0, high=8 → mid=4, a[4]=16 < 23 → low=5
low=5, high=8 → mid=6, a[6]=38 > 23 → high=5
low=5, high=5 → mid=5, a[5]=23 → 반환23은 배열에 존재하므로 -1이 출력되지 않고, 탐색 결과 인덱스 5가 출력된다.
오류나 개정된 내용이 보이면 알려주세요