728x90
다음 그림과 같이 시작점과 끝점을 정해놓고 중간값을 구한다.
중간값이 targeting 한 값과 일치한다면 return
아니라면 target한 값 보다 더 큰지 작은지 판별하여
재귀함수로 다시 return 해주면 된다
def binary_search(target,array,start,end):
if end<start:
return "none"
mid=(start+end)//2
if target==array[mid]:
return mid
elif target<array[mid]:
return binary_search(target,array,start,mid-1)
else:
return binary_search(target,array,mid+1,end)
size,target=map(int,input().split())
array=list(map(int,input().split()))
print(binary_search(target,array,0,size-1))
728x90
'코딩테스트 문제풀이' 카테고리의 다른 글
[python3]이것이 코딩테스트다 -음료수얼려먹기 (0) | 2022.11.27 |
---|---|
[python3]이것이 코딩테스트다- 부품찾기 (1) | 2022.11.25 |
[python3] 이것이 코딩테스트다 왕실의나이트 (0) | 2022.11.22 |
[python3] 1075번 나누기 (0) | 2022.11.15 |
[python3] 11508번 2+1 세일 (0) | 2022.11.15 |