[백준/C++]2343번: 기타 레슨 (작성중/fail)

Eunho Bae·2022년 4월 2일
0

백준

목록 보기
20/40
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
	ios::sync_with_stdio(0);
	cout.tie(0);
	cin.tie(0);

	int n, m;
	int sum = 0;

	cin >> n >> m;

	vector<int> v(n);

	for (int i = 0; i < n; i++)
	{
		cin >> v[i];
		sum += v[i];
	}

	int left = 0;
	int right = sum;
	int minimumSize = 0;
	
	while(left <= right)
	{
		int mid = (left + right) / 2;
		long long sum = 0;
		int cnt = 1;

		for (int i = 0; i < n; i++) 
		{
			if (sum + v[i] > mid)
			{
				cnt++;
				sum = 0;
			}

			sum += v[i];
		}

		if (cnt <= m)
		{
			right = mid - 1;
			minimumSize = mid;
		}
		else
			left = mid + 1;
	}

	cout << minimumSize;

	return 0;
}
profile
개인 공부 정리

0개의 댓글