#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;
}
'코딩테스트 > 백준' 카테고리의 다른 글
[실2] 1654 - 랜선 자르기 (0) | 2023.10.05 |
---|---|
[실2] 2805 - 나무 자르기 (0) | 2023.10.05 |
[골2] 1766 - 문제집 (0) | 2023.10.02 |
[골3] 2252 - 줄 세우기 (0) | 2023.10.02 |
[골5] 1717 - 집합의 표현 (0) | 2023.09.30 |