✏️ 문제
문제 파악
이거 푼다고 시간 진짜 많이 잡아먹었다.... 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 |