BOJ 1654
const input = require('fs').readFileSync('./input.txt').toString().trim().split('\n')
const num = input.shift().split(' ')
const n = Number(num[0])
const k = Number(num[1])
const lines = input.map(Number).sort((a,b) => a-b);
let start = 0;
let end = lines[lines.length-1];
let answer = Number.MIN_SAFE_INTEGER;
while(start <= end) {
let mid = Math.floor((start + end) / 2)
let result = 0;
for(let x of lines) {
result += Math.floor(x / mid);
}
if(result >= k) {
if(mid > answer) answer = mid;
start = mid + 1;
} else {
end = mid - 1;
}
}
console.log(answer);
// binarySearch
나무 자르기와 같은 로직이다. 이진 탐색을 통해서 구한다.
Author And Source
이 문제에 관하여(BOJ 1654), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@scato/BOJ-1654저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)