[프로그래머스/JS] 입국 심사

Urther·2022년 6월 8일
0

알고리즘

목록 보기
36/41
post-thumbnail

입국심사

🕊 난이도

Level 3

📣 풀이 방법

  • 입국심사를 기다리는 사람은 1명 이상 1,000,000,000명 이하입니다.
  • 각 심사관이 한 명을 심사하는데 걸리는 시간은 1분 이상 1,000,000,000분 이하입니다.

이진 탐색 방법으로 풀이한다.

  1. left 값은 0 으로, right 값은 times의 최댓값 * 인원수이다.
  2. mid 값은 mid 시간에 받을 수 있는 인원수다.
    • 만약 mid 시간에 받을 수 있는 인원수가 n보다 크다면 right 값을 줄여준다.
    • 만약 mid 시간에 받을 수 있는 인원수가 n보다 작다면 left 값을 늘려준다.

📄 전체 풀이

function solution(n, times) {
    var answer = 0;
    times.sort((a, b) => a - b);

    let left = 0,
      right = n * times[times.length - 1];

    while (left <= right) {
      let mid = parseInt((left + right) / 2);
      let people = 0;

      for (let time of times) {
        people += parseInt(mid / time);
      }

      if (people >= n) {
        right = mid - 1;
      } else {
        left = mid + 1;
        answer=left
      }
    }
    
    return answer;
}
profile
이전해요 ☘️ https://mei-zy.tistory.com

0개의 댓글