코딩테스트/백준

[골4] 2110 - 공유기 설치

ShovelingLife 2023. 10. 5. 21:18
#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

vector<int> v;

int main()
{
	int n, c;
	cin >> n >> c;
	v.resize(n);

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

	sort(v.begin(), v.end());

	int l = 1, r = v[n - 1];
	int res = 0;

	while (l <= r)
	{
		int cnt = 1;
		int mid = (l + r) / 2;
		int s = v[0];

		// 공유기 설치
		for (int i = 0; i < n; i++)
		{
        	int e = v[i] - s;
            
			if (mid <= e)
			{
				cnt++;
				s = v[i];
			}
		}
		if (cnt >= c)
		{
			l = mid + 1;
			res = mid;
		}
		else
			r = mid - 1;
	}
	cout << res;
}