본문 바로가기

프로그래밍 회고록/Python

2021.12.14 이진 탐색 연습

728x90
반응형

# 오늘의 문제

이진 탐색 연습

 # 나의 코드

이진 탐색 연습 중 재귀함수로 구현된 코드

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)

 

루프로 구현된 이진탐색 코드

 

def binary_search(array, target, start, end):
  while start<=end:
    mid = (start + end) //2
    
    if array[mid] == target:
      return mid

    elif array[mid] > target:
      end = mid - 1

    else:
      start = mid + 1
  return None

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)

 

 

728x90