[BOJ] 백준 6236 용돈 관리

태환·2024년 3월 2일
0

Coding Test

목록 보기
99/151

📌 [BOJ] 백준 6236 용돈 관리

📖 문제

📖 예제

📖 풀이

import sys
input = sys.stdin.readline

N, M = map(int, input().split())
arr = []
for _ in range(N):
  arr.append(int(input()))


start = max(arr)
end = sum(arr)

while start <= end:
  mid = (start+end) // 2
  now = mid
  cnt = 1
  for i in arr:
    if now < i:
      now = mid
      cnt += 1
    now -= i
  if cnt > M:
    start = mid + 1
  else:
    end = mid - 1
    ans = mid

print(ans)

인출할 때 돈의 액수에 대해 이분 탐색을 수행하면 된다.
처음에 인출한 상태에서 시작하기 때문에 처음 cnt는 1로 설정한다.

profile
연세대학교 컴퓨터과학과 석사 과정

0개의 댓글