[백준 2343] 기타 레슨

Junyoung Park·2022년 3월 24일
0

코딩테스트

목록 보기
314/631
post-thumbnail

1. 문제 설명

기타 레슨

2. 문제 분석

정렬하지 않고 이분 탐색을 사용해야 한다.

3. 나의 풀이

import sys

n, m = map(int, sys.stdin.readline().rstrip().split())
lectures = list(map(int, sys.stdin.readline().rstrip().split()))

left, right = max(lectures), 1000000000
ans = sys.maxsize

while left <= right:
    mid = (left + right) // 2

    cnt = 1
    total = 0

    for lecture in lectures:
        if total + lecture <= mid:
            total += lecture
        else:
            cnt += 1
            total = lecture
    if cnt <= m:
        right = mid - 1
        ans = min(ans, mid)
    else:
        left = mid + 1

print(ans)
profile
JUST DO IT

0개의 댓글