function solution(n, times) {
times.sort((a,b)=>a-b)
let left = 1;
let right = times.at(-1)*n
let answer = right;
while(left <= right){
let mid = Math.floor((left+right)/2)
let count =0;
times.forEach(value => {
count += Math.floor(mid / value);
if(count >= n) {
answer = Math.min(mid, answer);
return;
};
});
if (count >= n) {
right = mid - 1;
}
else {
left = mid + 1;
}
}
return answer;
}
이분 탐색을 사용하는 문제이다. 이분 탐색문제는 왼쪽 끝과 오른쪽 끝에서 시작해서 중간 값을 계속 업데이트 해나가면서 찾아가야한다. 항상 알고리즘 문제를 보면 길찾기를 제외하고는 어떤 알고리즘을 써야할지 감이 안잡힌다. ㅜㅠㅜㅜㅜㅜㅜㅜ 알고리즘 어려워
감 사드려야겠다 🍊