https://programmers.co.kr/learn/courses/30/lessons/43238
이진탐색을 어떻게 적용하지 감이 잘 안왔다..
배열을 순회하며 탐색하는 것이 아니라
정답 ( 주어진 시간에 최대 심사할 수 있는 인원수 )를 탐색해야 한다.
주의할 점은 r = m - 1
이 아니라 r = m
이다.
function solution(n, times) {
var l = 0, r = Math.max(...times) * n;
while (l < r) {
const m = Math.floor((l + r) / 2);
const pass = times.reduce((ac, v) => ac + Math.floor(m / v), 0);
if (pass < n)
l = m + 1;
else
r = m;
}
return l;
}