티스토리 뷰

programmers.Level3

javascript - 입국 심사

코딩하는 둥아 2022. 10. 21. 22:53
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/43238

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

  • left <= right 일 때까지 반복.
  • 최소 시간을 구하는 것이므로 count의 수가 n 값 보다 크거나 같을 때에는 answer의 값을 업데이트
  • 이분 탐색
  • 이분 탐색의 개념을 실제 문제에 적용을 해 본 적이 없어서 조금 생소했다.
  • 이분 탐색 한번 더 살펴보기!!
function solution(n, times) {
    times = times.sort((a,b) => a-b);
    var answer = times[times.length - 1] * n;
    var left = 0, right = times[times.length - 1] * n;
    
    while(left <= right) {
        var mid = Math.floor((left + right) / 2);
        var count = 0; // mid시간 동안 검사할 수 있는 인원의 수
        for (const time of times) {
            count += Math.floor(mid / time);
        }
        if (count < n)  left = mid + 1;
        else if (count >= n) {
            answer = Math.min(mid, answer);
            right = mid - 1;
        }
    }
    
    return answer;
}
728x90

'programmers.Level3' 카테고리의 다른 글

Javascript - 불량 사용자  (0) 2022.10.21
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함