[백준] 6236번 - 용돈 관리

yerimstar·2021년 9월 16일
2

이분탐색

목록 보기
9/10

아이디어

기타 레슨과 동일한 문제
min값 지정만 list.append방식이 아닌 min함수를 활용한 방식으로 변경하였다.

코드

# 용돈 관리
import sys

def binary(start,end,money,M):
    result = end
    while(start <= end):
        mid = (start + end) // 2
        num = 0
        sum = 0

        if mid < max(money):
            start = mid + 1
            continue

        for m in money:
            if sum + m <= mid:
                sum += m
            else:
                sum = m
                num += 1
        if num < M:
            result = min(result,mid)
            end = mid - 1
        else:
            start = mid + 1
    return result

N,M = map(int,sys.stdin.readline().split())
money = [int(sys.stdin.readline()) for _ in range(N)]
start = sum(money)//M
end = sum(money)
result = binary(start,end,money,M)
print(result)
profile
백엔드 개발자

2개의 댓글

comment-user-thumbnail
2021년 9월 16일

굿굿

1개의 답글

관련 채용 정보