문제 링크
https://www.acmicpc.net/problem/2805
이 문제는 1654번 문제와 유사하다.
다른 점은 나무를 자르는 것이므로 나무의 높이가 자르는 높이보다 커야한다는 점이다. 그래서 ‘if t >= mid:’ 를 추가해주어야 한다.
정답 코드
import sys
N, M = map(int,sys.stdin.readline().split())
trees = list(map(int,sys.stdin.readline().split()))
start = 1
end = max(trees)
while start <= end:
mid = (start + end) // 2
result = 0
for t in trees:
if t >= mid:
result += t - mid
if result >= M:
start = mid + 1
else:
end = mid - 1
print(end)
728x90
'파이썬 알고리즘 문제 풀이' 카테고리의 다른 글
Baekjoon Online Judge 10815번 파이썬 (1) | 2022.09.22 |
---|---|
Baekjoon Online Judge 2110번 파이썬 (1) | 2022.09.21 |
Baekjoon Online Judge 1654번 파이썬 (0) | 2022.09.14 |
이진 탐색 (0) | 2022.09.13 |
Baekjoon Online Judge 1967번 파이썬 (1) | 2022.09.07 |