PS/백준

[Python] 6236번 용돈 관리

s_omi 2024. 7. 30. 10:36

✏️ 문제


문제 파악

이거 푼다고 시간 진짜 많이 잡아먹었다.... start를 최대값이 아닌 최소값으로 주고 하니 값이 자꾸 안나왔다 ㅠ

 

알고리즘

  • 매개 변수 탐색
  • 이분 탐색

 

 

코드

import sys
input = sys.stdin.readline

n,m = map(int, input().split())
amount = [int(input()) for i in range(n)]

start, end = max(amount), sum(amount)
while start <= end:
  mid = (start+end) // 2
  cnt = 1
  changes = mid

  for i in amount: 
    if changes - i < 0:
      cnt += 1
      changes = mid
    changes -= i 

  if cnt <= m:
    end = mid - 1
  else:
    start = mid + 1

print(mid)

 

'PS > 백준' 카테고리의 다른 글

[Python] 1166번 선물  (0) 2024.07.31
[Python] 14627번 파닭파닭  (0) 2024.07.31
[Python] 2417번 정수 제곱근  (0) 2024.07.30
[Python] 17266번 어두운 굴다리  (0) 2024.07.30
[Python] 1654번 랜선 자르기  (0) 2024.07.26