[백준] 2805번 : 나무 자르기

letsbebrave·2022년 3월 5일
0

codingtest

목록 보기
36/146

문제

개념

이진탐색

풀이

import sys

N, M = map(int, sys.stdin.readline().split())

num = list(map(int, sys.stdin.readline().split()))

num.sort()

left = 0
right = max(num)
answer = 0
while left <= right:
    cnt = (left + right) // 2
    cut = 0
    for i in num:
        if i >= cnt:
            cut += i - cnt
    # if cut == M:
    #     print(cnt)
    #     break
    if cut < M:
        right = cnt -1
    else:
        answer = cnt
        left = cnt + 1
print(answer)
        
profile
그게, 할 수 있다고 믿어야 해

0개의 댓글