def binary_search(numbers, target):
"""
이분 탐색 알고리즘으로 특정 값을 찾는다.
값이 있으면 값의 인덱스를 반환하고,
값이 없으면 -1를 반환한다.
"""
left = 0
right = len(numbers) - 1
while left <= right:
mid = (left + right) // 2
if target == numbers[mid]:
return mid
elif target > numbers[mid]:
left = mid + 1
else:
right = mid - 1
return -1
if __name__ == '__main__':
numbers = [6, 5, 6, 4, 3, 2, 1]
target = 3
numbers.sort()
target_idx = binary_search(numbers, target)
print(numbers)
print(target_idx)
'''
출력 결과
[1, 2, 3, 4, 5, 6, 6]
2
'''