프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr


👇 내가 제출한 코드
import java.util.*;
class Solution {
public long solution(int n, int[] times) {
long answer = 0;
Arrays.sort(times); // 이분 탐색을 위해 정렬
long left = 0;
long right = (long) n * times[times.length - 1]; // 최악의 경우 고려
while(left <= right) {
long mid = (left + right) / 2;
long sum = 0; // 심사한 인원
for(int time : times) {
sum += mid / time;
}
// n명 심사해야하는데 못했다면, 시간이 더 필요하기 때문에 left 옮겨줌
if(sum < n) left = mid + 1;
// n명 이상 했다면 시간을 줄여서 최적의 시간을 확인해보기
else {
right = mid - 1;
answer = mid;
}
}
return answer;
}
}
'Algorithm & SQL > Programmers' 카테고리의 다른 글
| [Programmers Lv.2 / Java] 가장 큰 수 (0) | 2024.03.28 |
|---|---|
| [Programmers Lv.1 / Java] 키패드 누르기(2020 카카오 인턴십) (0) | 2024.03.25 |
| [Programmers Lv.1 / Java] 신규 아이디 추천 (0) | 2024.03.25 |
| [Programmers Lv.2 / Java] 게임 맵 최단거리(BFS) (0) | 2024.03.24 |
| [Programmers Lv.1 / Java] 크기가 작은 부분문자열 (0) | 2024.03.24 |