본문 바로가기
온라인 저지/프로그래머스

[PGS/JavaScript] 이분탐색 - 입국심사

by ahj 2022. 2. 4.
function solution(n, times) {
  times.sort((a, b) => a - b);
  let min_time = 1,
    max_time = n * times[times.length - 1],
    mid,
    peopleSumEachCase;
  while (min_time <= max_time) {
    mid = Math.floor((max_time + min_time) / 2);
    peopleSumEachCase = 0;
    for (let time of times) {
      peopleSumEachCase += Math.floor(mid / time);
    }
    if (peopleSumEachCase >= n) {
      max_time = mid - 1;
    } else {
      min_time = mid + 1;
    }
  }

  return max_time+1;
}

그냥 느낌으로 돌려봤더니 왜 맞았지... 이진탐색 자체가 어려운 건 아닌데 logic을 다시 따져보자~

'온라인 저지 > 프로그래머스' 카테고리의 다른 글

[PGS/Java] 타겟 넘버  (0) 2022.02.18
[PGS/Python] 가장 큰 수  (0) 2021.11.06

댓글