백준 13777번 바로가기

나의 풀이

def binary_search(data, target):
  data.sort()
  start = 0
  end = len(data) - 1
  arr = []
  
  while start <= end:
    mid = (start+end)//2
    arr.append(mid+1)
    if data[mid] == target:
      return arr
    elif data[mid] < target:
      start = mid + 1
    else:
      end = mid - 1

import sys
for i in sys.stdin:
  if int(i) == 0:
    break
  print(*binary_search([i for i in range(1,51)],int(i)))

CODE REVIEW

  1. 이분 탐색을 연습할 수 있는 괜찮은 문제. 이분 탐색 과정에서 mid로 사용하는 요소가 몇번째인지 출력해야했다.
  2. 재귀를 활용한 이분 탐색 구현 방법을 공부하고 이 문제를 다시 풀어봐야겠다.