문제 : https://school.programmers.co.kr/learn/courses/30/lessons/43238
Q) n명의 입국심사 최소시간?
제한사항
1)입국심사를 기다리는 사람은 1명 이상 1,000,000,000명 이하입니다.
2)각 심사관이 한 명을 심사하는데 걸리는 시간은 1분 이상 1,000,000,000분 이하입니다.
3)심사관은 1명 이상 100,000명 이하입니다.
⭐️이진탐색⭐️
입국심사 시간의 최소값을 이진탐색으로 구현
🗝️ 심사 시간 범위 최대 (right) : 가장 오래 걸리는 심사대 시간 * (n명 / 심사대 개수)
=> 가장 오래 걸리는 심사대가 완료되기 전까지 다른 심사대가 기다리는 상황을 최대 라고 가정했다.
🗝️ 심사 시간 범위 최소 (left) : 1
// 심사 시간내 심사완료 인원
long cnt = 0;
if(cnt>= (long) n){
result = mid;
right=mid-1;
}else{
left=mid+1;
}
이진탐색의 구현을 정확히 이해하고 시간내에 구현할 수 있었다
처음에는 탐색 대상, 탐색 범위 지정도 어려웠는데
문제를 보고 심사시간을 대상으로 탐색범위 left,right를 지정해 직접 구현해본 첫 문제이다.