이진탐색 - 고정점 찾기

입력 조건

  • 첫째 줄에 N이 입력됨.
  • 둘째 줄에 N개의 원소가 정수 형태로 공백으로 입력되어 구분됨.

출력 조건
- 고정점이 있을시 고정점 출력, 없으면 -1 출력

def binary_search(array, start, end):
    if start > end:
        return None
    mid = (start+end)//2

    if array[mid] == mid:
        return mid
    elif array[mid] > mid:
        return binary_search(array, start, mid-1)
    else:
        return binary_search(array, mid+1, end)


n = int(input())

array = list(map(int, input().split()))

index = binary_search(array, 0, n-1)

if index == None:
    print(-1)
else:
    print(index)

좋은 웹페이지 즐겨찾기