반응형
https://www.acmicpc.net/problem/2343
2343번: 기타 레슨
강토는 자신의 기타 강의 동영상을 블루레이로 만들어 판매하려고 한다. 블루레이에는 총 N개의 강의가 들어가는데, 블루레이를 녹화할 때, 강의의 순서가 바뀌면 안 된다. 순서가 뒤바뀌는 경
www.acmicpc.net
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int N, M;
vector<int> lecture;
bool canMakeBlueray(ll lim){
int cnt = 0;
int sum = 0;
for(int i=0; i<N; i++){
sum += lecture[i];
if(sum == lim){
sum = 0;
cnt++;
}
else if(sum > lim){
sum = lecture[i];
cnt++;
}
}
if(sum>0) cnt++;
return cnt <= M;
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> N >> M;
int maxNum = 0;
for(int i=0; i<N; i++){
int num;
cin >> num;
lecture.push_back(num);
maxNum = max(maxNum, num);
}
//각 강의는 10000분을 넘지 않기 때문
//100000 * 10000 -> long long
ll st = 1, en = N*10000;
while(st<=en){
ll mid = (st+en)/2;
if(mid >= maxNum && canMakeBlueray(mid)){
en = mid - 1;
}
else{
st = mid + 1;
}
}
cout << st <<'\n';
return 0;
}
반응형
'Algorithm > problem' 카테고리의 다른 글
백준 16434번 : 드래곤 앤 던전 - 이분탐색, 구현 C++ (0) | 2022.07.04 |
---|---|
백준 6236번 : 용돈 관리 - 이분탐색(매개변수 탐색) C++ (0) | 2022.07.03 |
백준 1939번: 중량제한 - Parametric Search, BFS (0) | 2022.07.03 |
백준 15990번 : 1,2,3 더하기 5 - DP (0) | 2022.07.03 |
백준 14226번 : 이모티콘 - BFS (0) | 2022.07.02 |