https://www.acmicpc.net/problem/2343
2343번: 기타 레슨
강토는 자신의 기타 강의 동영상을 블루레이로 만들어 판매하려고 한다. 블루레이에는 총 N개의 강의가 들어가는데, 블루레이를 녹화할 때, 강의의 순서가 바뀌면 안 된다. 순서가 뒤바뀌는 경
www.acmicpc.net
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
course = list(map(int, input().split()))
max_v = max(course)
s = max_v
e = sum(course)
result = int(1e9)
while s <= e:
mid = (s+e)//2
tmp = 0
cnt = 1
for i in range(n):
if tmp+course[i] <= mid:
tmp += course[i]
else:
cnt += 1
tmp = course[i]
if cnt > m:
break
if cnt > m:
s = mid+1
else:
e = mid-1
if max_v <= mid:
result = min(result, mid)
print(result)
<풀이방법>
이분탐색으로 풀이하는데 주의할 점은 반으로 나눈 값이 젤 높은 값 보다 작아버리게 되는 경우가 있어서 그 부분을
if문으로 제외시켜줘야 한다.
'파이썬' 카테고리의 다른 글
[백준 파이썬] 2493번 탑 (0) | 2022.08.22 |
---|---|
[백준 파이썬] 2565번 전깃줄 (0) | 2022.08.21 |
[BOJ PYTHON] 1080번 행렬 (0) | 2022.08.17 |
[BOJ][PYTHON] 6603번 로또 (0) | 2022.08.15 |
[백준 파이썬] 12852번 1로 만들기 2 (0) | 2022.08.11 |