반응형
[백준 6236번 / C++] 용돈 관리
이분 탐색 문제이다. 어떤식으로 이분 탐색을 활용하는지 한번 살펴보자. 먼저 비교할 값을 이분탐색을 통해서 추출해낸다. 예를 들어 low 값과 high 값을 1과 100000값으로 정했으면 low와 high를 이
baebalja.tistory.com
위의 문제와 거의 똑같은 문제다. 해당 링크 설명을 보고 한번 풀어보자.
#include <iostream>
#include <climits>
#include <vector>
using namespace std;
int l = 1; int h = INT_MAX;
int n, m;
vector <int> v;
bool check(int mid) {
for (int i = 0; i < n; i++) {
if (v[i] > mid)return 0;
}
int sum = 0;
int cnt = 1;
for (int i = 0; i < n; i++) {
if (sum+v[i] <= mid) {
sum+=v[i];
}
else {
sum = 0;
cnt++;
sum += v[i];
}
}
return cnt <= m;
}
int main() {
cin >> n >> m;
for (int i = 0; i < n; i++) {
int a; cin >> a;
v.push_back(a);
}
int result = 0;
while (l <= h) {
int mid = (l + h) / 2;
if (check(mid)) {
h = mid - 1;
result = mid;
}
else {
l = mid + 1;
}
}
cout << result;
}
2343번: 기타 레슨
강토는 자신의 기타 강의 동영상을 블루레이로 만들어 판매하려고 한다. 블루레이에는 총 N개의 강의가 들어가는데, 블루레이를 녹화할 때, 강의의 순서가 바뀌면 안 된다. 순서가 뒤바뀌는 경
www.acmicpc.net
반응형
'백준 > 이분탐색' 카테고리의 다른 글
[백준 1072번 / C++] 게임 (0) | 2022.01.26 |
---|---|
[백준 2776번 / C++] 암기왕 (0) | 2022.01.26 |
[백준 14627번 / C++] 파닭파닭 (0) | 2022.01.25 |
[백준 1561번 / C++] 놀이 공원 (0) | 2022.01.19 |
[백준 6236번 / C++] 용돈 관리 (0) | 2022.01.17 |
댓글