- 풀이
이분 탐색으로 풀었다.
이분 탐색은 start, end를 두고 mid값으로 target을 찾는 알고리즘이다.
이번 문제에서 mid는 걸리는 시간, target은 입국 심사를 기다리는 n명의 사람이다.
- 코드
import java.util.*;
class Solution {
public long solution(int n, int[] times) {
long answer = Long.MAX_VALUE;
Arrays.sort(times);
long start = 0 , mid, end = Long.MAX_VALUE;
while(start <= end){
mid = (start + end) / 2;
long sum = 0;
for(int i=0; i<times.length; i++){
sum += mid / times[i];
if(sum >= n)
break;
}
if(n > sum){
start = mid + 1;
}
else{
end = mid - 1;
answer = Math.min(answer, mid);
}
}
return answer;
}
}
'algorithm' 카테고리의 다른 글
[프로그래머스/JAVA] 가장 먼 노드 (0) | 2021.10.08 |
---|---|
[프로그래머스/JAVA] 위클리 챌린지 9주차 (0) | 2021.10.06 |
[프로그래머스/JAVA] 섬 연결하기 - Level 3 (0) | 2021.09.29 |
[BOJ/JAVA] 백준 2533번 : 사회망 서비스(SNS) (0) | 2021.09.21 |
[BOJ/JAVA] 백준 5430번 : AC (0) | 2021.09.10 |