[JS] 입국심사

기성·2024년 10월 6일
1

TIL

목록 보기
67/81

문제

답안

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;
}

이분 탐색을 사용하는 문제이다. 이분 탐색문제는 왼쪽 끝과 오른쪽 끝에서 시작해서 중간 값을 계속 업데이트 해나가면서 찾아가야한다. 항상 알고리즘 문제를 보면 길찾기를 제외하고는 어떤 알고리즘을 써야할지 감이 안잡힌다. ㅜㅠㅜㅜㅜㅜㅜㅜ 알고리즘 어려워

profile
프론트가 하고싶어요

1개의 댓글

comment-user-thumbnail
2024년 10월 7일

감 사드려야겠다 🍊

답글 달기