[JavaScript] 프로그래머스 입국심사 LEVEL3
3861 단어 JavaScript프로그래머스이분탐색JavaScript
function solution(n, times) {
var answer = 0;
let left = 0;
let right = 100000000000000;
while (left <= right) {
const mid = Math.floor((left + right) / 2);
let sum = 0;
for (const time of times) {
sum += Math.floor(mid / time);
}
if (sum >= n) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return left;
}
변수
right
의 초기값 = 기다리는 사람수 * 심사위원수mid
: 모든 사람이 심사를 받는데 걸리는 시간 (return값 찾기)sum
: mid라는 시간동안 통과할 수 있는 사람 수
풀이
- n = 6, 심사위원 = [7, 10] 이라고 하자
- 현재 mid = 50이면
- sum은 50 / 7 = 7 + 50 / 10 = 5 => 12로 50분동안 2명의 심사위원은 총 12명의 사람을 심사할 수 있다.
- 12라는 값은 6보다 크기 때문에 right값을 줄여준다.
- 이런식으로 left <= right 일때까지 left와 right값을 바꿔주고 최소값인 left를 return한다.
Author And Source
이 문제에 관하여([JavaScript] 프로그래머스 입국심사 LEVEL3), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@johnyejin/JavaScript-프로그래머스-입국심사-LEVEL3저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)