본문 바로가기
004 컴퓨터과학/알고리즘

[백준 온라인저지] 이진 탐색 / 2805. 나무 자르기

by Dallas 2023. 6. 6.
반응형

문제

 

예제

 

소스코드

시간 : 4292ms

n, m = map(int, input().split(' '))
arr = list(map(int, input().split(' ')))
arr.sort()

start = 1
end = max(arr)

result = 0
while (start <= end) :
    length = 0
    mid = (start + end) // 2
    for x in arr :
        if x > mid :
            length += x - mid
    
    if length == m :
        result = mid
        break
    
    elif length > m :
        result = mid
        start = mid + 1
    else :
        end = mid - 1
    
print(result)
반응형

댓글