반응형
1. 문제
https://www.acmicpc.net/problem/2343
2. 풀이
binary search
3. 구현
import sys
import math
# sys.stdin = open('input.txt')
n,m = map(int, sys.stdin.readline().split())
tmp = sys.stdin.readline().split()
lis=[]
for item in tmp:
lis.append(int(item))
# lis = sorted(lis)
def cnt_video(size):
cnt=0
tmp_sum=0
for item in lis:
if tmp_sum+item>size:
cnt+=1
tmp_sum=0
tmp_sum+=item
return cnt+1
le = max(lis)
ri = sum(lis)
while le<=ri:
mid=(le+ri)//2
cnt=cnt_video(mid)
if cnt<=m:
ri=mid-1
else:
le=mid+1
print(le)
4. 테스트케이스 추가
12 3
10 8 7 2 8 9 4 12 7 5 2 9
답: 33
12 5
7 3 3 10 4 8 7 9 2 2 12 2
답: 15
반응형
'PS > 백준' 카테고리의 다른 글
백준 11052: 카드구매하기 python, 파이썬 (0) | 2021.07.19 |
---|---|
[테스트케이스 추가] 백준 16434번: 드래곤 앤 던전 시간초과 해결 python, 파이썬 (0) | 2021.07.19 |
[테스트케이스 추가] 백준 11055번: 가장 큰 증가 부분 수열 python, 파이썬 (1) | 2021.07.19 |
[테스트케이스 추가] 백준 11051 번: 이항계수 2 python, 파이썬 (0) | 2021.07.19 |
백준 11057번: 오르막수 python, 파이썬 (0) | 2021.07.19 |
댓글