728x90
반응형

2805번 나무 자르기와 거의 똑같은 문제이다.

이제 이런 종류의 이분 탐색 문제는 익숙해진 건지 3분 만에 풀었다!

def binarySearch(li, M):
    s, e = 1, max(li)
    ans = 0
    while s <= e:
        m = (s + e) // 2
        t = 0
        for n in li:
            if n > m:
                t += m
            else:
                t += n
        if t <= M:
            s = m + 1
            ans = m
        else:
            e = m - 1
    return ans


N = int(input())
li = list(map(int, input().split()))
M = int(input())
print(binarySearch(li, M))
728x90
반응형

+ Recent posts