[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.)