이전 코드
import java.util.*;
class Solution {
public long solution(int n, int[] times) {
long answer = Long.MAX_VALUE;
Arrays.sort(times);
long start = 0;
long mid;
long end = Long.MAX_VALUE;
long sum;
while (start <= end){
mid = (start + end)/2;
sum = 0;
for (int i = 0 ; i < times.length ; i++){
sum += mid/times[i];
if (sum >= n){
break;
}
}
if (sum < n){
start = mid + 1;
} else {
end = mid - 1;
answer = Math.min(answer, mid);
}
}
return answer;
}
}
최신 코드
import java.util.*;
class Solution {
public long solution(int n, int[] times) {
long answer = Long.MAX_VALUE;
long start, end, mid;
Arrays.sort(times);
start = 0;
end = Long.MAX_VALUE;
long sum;
while (start <= end){
sum = 0;
mid = (start + end) / 2;
for (int i = 0 ; i < times.length ; i++){
sum += mid / times[i];
if (sum >= n){
break;
}
}
if (sum < n){
start = mid + 1;
} else {
end = mid - 1;
answer = Math.min(answer, mid);
}
}
return answer;
}
}
'프로그래머스 - JAVA' 카테고리의 다른 글
코딩테스트 연습 > 깊이/너비 우선 탐색(DFS/BFS) > 여행경로 (0) | 2021.06.17 |
---|---|
코딩테스트 연습 > 깊이/너비 우선 탐색(DFS/BFS) > 단어 변환 (0) | 2021.06.16 |
코딩테스트 연습 > 깊이/너비 우선 탐색(DFS/BFS) > 네트워크 (0) | 2021.06.16 |
코딩테스트 연습 > 힙(Heap) > 디스크 컨트롤러 (0) | 2021.06.16 |
코딩테스트 연습 > 깊이/너비 우선 탐색(DFS/BFS) > 타겟 넘버 (0) | 2021.06.14 |