포도가게의 개발일지

python 백준 2805번 나무자르기 본문

백준

python 백준 2805번 나무자르기

grape.store 2021. 8. 15. 20:26
반응형

1. 이진탐색을 처음에 재귀로 구현하여 풀었는데 어디선가 무한루프에 빠져 while문을 이용하여 이진탐색

import sys

def binary(start,end,target):
    global namu
    
    while(end>=start):
        mid = (start+end)//2
        answer = 0
        for x in namu_arr:
            if x>mid:
                answer += (x-mid)
        if answer >= target:
            start = mid + 1
        else:
            end = mid -1
    print(end)



namu,target = map(int,sys.stdin.readline().split())
namu_arr = list(map(int,sys.stdin.readline().split()))
start_h = max(namu_arr)
binary(1,start_h,target)

개인적으로 이진탐색의 경우 while 문을 이용하여 탐색하는게 분석하기 더 편한거 같다.

Comments