반응형
백준 2805번 나무 자르기
파이썬 풀이
이분 탐색 풀이입니다. 톱날의 높이를 이분 탐색으로 찾습니다.
import sys
input = sys.stdin.readline
N, M = map(int,input().split()) # 나무 수, 필요한 나무 길이
trees = list(map(int, input().split()))
start, end = 0, max(trees) # 시작 점, 끝점
# 이분 탐색
while start <= end:
mid = (start+end)//2
tree = 0 # 잘린 나무 합
for i in trees:
if i > mid: # mid보다 큰 나무 높이는 잘림
tree += i - mid
if tree >= M: # 원하는 나무 높이보다 더 많이 잘렸으면
start = mid + 1
else: # 원하는 나무 높이보다 덜 잘렸으면
end = mid - 1
print(end)
반응형
'Python > 백준' 카테고리의 다른 글
[백준 파이썬] 2178번 미로 탐색 (0) | 2021.05.03 |
---|---|
[백준 파이썬] 2512번 예산 (0) | 2021.05.02 |
[백준 파이썬] 17219번 비밀번호 찾기 (0) | 2021.05.01 |
[백준 파이썬] 2751번 수 정렬하기 2 (0) | 2021.04.29 |
[파이썬 백준] 2750번 수 정렬하기 (0) | 2021.04.29 |