코딩 선배님들 파이썬을 배우고 있는 코딩 뉴비입니다.
파이썬 재귀함수 이진탐색에 대해 공부 중인데 강의나 블로그 글을 보고 공부하여 아래와 같은 코딩의 단어들의 역활을 어렴풋이 이해 했지만 어디에 탐색해 찾을 숫자와 1~10 이런식으로 범위 설정하는 숫자를 넣어야 할지 모르겠어 질문드립니다.
N의 리스트를 만들어 줘야 하는건가요? 아니면 n, target = list(map(int, input().split( ))) array = list(map(int, input( ).split( ))) 부분에 split의 ()와 input의 () 안에 숫자를 넣어줘야 하는 것 인가요? 무식하게 여기 저기 숫자를 넣어 봤지만 구동이 안 되어 질문드립니다 부디 알려주신다면 정말로 감사하겠습니다.
def binary_search(array, target, start, end):
if start > end:
return None
mid = (start + end) // 2
if array[mid] == target:
return mid
elif array[mid] > target:
return binary_search(array, target, start, mid - 1)
else:
return binary_search(array, target, mid + 1, end)
n, target = list(map(int, input().split())
array = list(map(int, input().split())
result = binary_search(array, target, 0, n - 1)
if result == None:
print("원소가 존재하지 않습니다")
else:
print(result + 1)