반응형
https://www.acmicpc.net/problem/2805
import sys
ssr = sys.stdin.readline
n,m = map(int, ssr().split())
wood = list(map(int, ssr().split()))
low = 0
high = max(wood)
while low<=high:
sum = 0
mid = (low + high)//2
for i in wood:
if i >= mid:
sum += i - mid
if m > sum:
high = mid-1
else:
low = mid+1
print(high)
저번에 올렸던 전선 문제랑 상당히 비슷합니다만 잘라낸 위에 있는 것들이 우리가 가져가는 것이란 걸 유의해서 푸셔야 합니다. 전선 문제를 풀어보셨다면 보자마자 이분탐색이 생각나실겁니다.
반응형
'Problem Solving > BOJ' 카테고리의 다른 글
[BOJ][Python]백준 10773 풀이 (0) | 2022.02.20 |
---|---|
[BOJ][Python]백준 4949 풀이 (0) | 2022.02.20 |
[BOJ][Python]백준 1966 풀이 (0) | 2022.02.19 |
[BOJ][Python]백준 1874 풀이 (0) | 2022.02.15 |