eaz_coding

[Baekjoon] 2805 나무 자르기 본문

eaz_algorithm

[Baekjoon] 2805 나무 자르기

eaz_silver 2024. 11. 14. 23:35

문제

https://www.acmicpc.net/problem/2805

 

풀이

from collections import deque
import sys
input = sys.stdin.readline

n, m = map(int, input().split())
trees = list(map(int, input().split()))

u, l = max(trees), 1
answer = 0

while l < u:
    mid = (u+l) // 2
    
    s = 0
    for i in range(n):
        if trees[i] - mid > 0:
            s += (trees[i] - mid)
        if s >= m:
            break
    
    if s >= m:
        if answer < mid:
            answer = mid
        l = mid+1
    else:
        u = mid

print(answer)

 

'eaz_algorithm' 카테고리의 다른 글

[Baekjoon] 1300 K번째 수  (0) 2024.11.16
[Baekjoon] 1904번 01타일  (0) 2024.11.15
[Baekjoon] 12865 평범한 배낭  (0) 2024.11.13
[Baekjoon] 9251 LCS  (0) 2024.11.12
[Programmers]  (0) 2024.11.11