https://school.programmers.co.kr/learn/courses/30/lessons/43238
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
start 지점: times의 최솟값
end 지점: n명 모두가 심사를 받을 때 가용할 수 있는 최대 시간
📌주의할 점
long end = (long)times[times.length-1]*n;
times가 int 배열이므로 (long)으로 형변환 해주기.
요 부분 빼먹으니 정확도 55퍼 나오더라...
import java.util.*;
class Solution {
public long solution(int n, int[] times) {
Arrays.sort(times);
long start = times[0];
long end = (long)times[times.length-1]*n; //60
long answer = end;
while(start <= end){
long count = 0; //사람수세기
long mid = (start+end) / 2;
for(int i = 0; i < times.length; i++){
count += (mid / times[i]);
}
//해당 시간에 n보다 같거나 더 많은 사람이 심사를 받을 수 있는 경우에는 end = mid-1
if(count >= n){
answer = Math.min(answer, mid);
end = mid - 1;
}
else {
start = mid + 1;
}
}
return answer;
}
}
'Algorithms > programmers' 카테고리의 다른 글
[Binary Search Tree] 길 찾기 게임 (0) | 2024.02.29 |
---|---|
[이분탐색] 징검다리 건너기 (0) | 2024.01.23 |
[Greedy] 프로그래머스 체육복, 큰 수 만들기, 구명보트, 단속카메라 (1) | 2023.12.28 |
[Dynamic Programming] 프로그래머스 정수삼각형 (0) | 2023.12.26 |
[DFS/BFS] 프로그래머스 타겟넘버, 네트워크 (1) | 2023.12.22 |