문제링크 : https://programmers.co.kr/learn/courses/30/lessons/43238
import java.util.*;
import java.io.*;
class Solution {
public long solution(int n, int[] times) {
long left = 0;
long right = 0;
long ans = 0;
for(int i=0;i<times.length;i++){
if(right < times[i]){
right = times[i];
}
}
right *= n;
while(left<=right){
long mid = (left+right)/2;
long availNum = 0;
for(int i=0;i<times.length;i++){
availNum += mid/times[i];
if(availNum>=n) break;
}
if(availNum>=n){
ans = mid;
right = mid-1;
}else{
left = mid + 1;
}
}
return ans;
}
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 정수 삼각형 / JAVA (0) | 2022.02.18 |
---|---|
[프로그래머스] 디스크 컨트롤러 / JAVA (0) | 2022.02.18 |
[프로그래머스] 2021 카카오인턴십 - 미로탈출 [JAVA] (0) | 2021.08.31 |
[카카오 2021 인턴십] 표 편집 / 다양한 풀이 [JAVA] (0) | 2021.07.30 |
[프로그래머스] N으로 표현 [JAVA] (0) | 2021.06.03 |