포도가게의 개발일지
python 백준 2805번 나무자르기 본문
반응형
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 문을 이용하여 탐색하는게 분석하기 더 편한거 같다.
'백준' 카테고리의 다른 글
python 백준 2470번 두 용액 (0) | 2021.08.15 |
---|---|
python 백준 2110번 공유기 설치 (0) | 2021.08.15 |
python 백준 1655번 수찾기(이분탐색) (0) | 2021.08.15 |
python 백준 2468번 안전영역 (0) | 2021.08.11 |
백준 10971번 외판원의 순회 2 (0) | 2021.08.10 |
Comments