https://www.acmicpc.net/problem/2343
2343번: 기타 레슨
강토는 자신의 기타 강의 동영상을 블루레이로 만들어 판매하려고 한다. 블루레이에는 총 N개의 강의가 들어가는데, 블루레이를 녹화할 때, 강의의 순서가 바뀌면 안 된다. 순서가 뒤바뀌는 경
www.acmicpc.net
이진탐색 문제로, 기존 이진탐색에 나누어지는 덩어리의 갯수(내 코드에선 t)에 맞추어 최댓값을 구하는 문제이다.
n,m = list(map(int,input().split()))
arr = list(map(int,input().split()))
st = max(arr)
ed = sum(arr)
while st <= ed:
mid = (st+ed)//2
t = 0
b = 0
for i in range(n):
if b + arr[i] > mid:
t+=1
b = 0
b += arr[i]
# b가 mid값보다 커지진 않았지만 존재할 경우
if b:
t+=1
if t > m:
st = mid +1
else:
ed = mid -1
print(st)
'Algorithm > baekjoon' 카테고리의 다른 글
baekjoon 1654: 랜선 자르기 (0) | 2022.07.15 |
---|---|
baekjoon 6236: 용돈 관리 (0) | 2022.07.14 |
baekjoon 2512: 예산 (0) | 2022.07.12 |
baekjoon 2805: 나무 자르기 (0) | 2022.07.08 |
baekjoon 17951: 흩날리는 시험지 속에서 내 평점이 느껴진거야 (0) | 2022.07.07 |
댓글