๐งธ ์ดํด๊ฐ ์ ์๋๋๋ฐ ์๋ ์ค๋ช ๋งํฌ๋ฅผ ๋ณด๊ณ ์ดํด๊ฐ ๋์๋ค๐
๐จ์ฐธ๊ณ ์ค๋ช
๐จ์ฐธ๊ณ ์ฝ๋
์ฝ๋
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
const [N, C] = input.shift().split(" ").map(Number);
const houses = input.map(Number).sort((a, b) => a - b);
//์ต์ ๊ฐ๊ฒฉ
let left = 1;
//์ต๋ ๊ฐ๊ฒฉ
let right = houses[N - 1] - houses[0];
while (left <= right) {
//๊ฐ๊ฒฉ
const mid = Math.floor((left + right) / 2);
//์ค์น๋ ๊ณต์ ๊ธฐ ๊ฐ์
let count = 1;
let prev = houses[0];
for (let i = 1; i < N; i++) {
if (houses[i] - prev >= mid) {
count++;
prev = houses[i];
}
}
//๊ฐ๊ฒฉ์ ์ค์ฌ์ผํจ
if (count < C) right = mid - 1;
//๊ฐ๊ฒฉ์ ๋๋ ค์ผํจ
else left = mid + 1;
}
console.log(right);