728x90
https://school.programmers.co.kr/learn/courses/30/lessons/43238
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
메모리: 82.5 MB, 시간: 45.28 ms
사용 알고리즘: 이분탐색
class Solution {
public long solution(int n, int[] times) {
long answer = Long.MAX_VALUE;
// 이분탐색
long s = 0, e = Long.MAX_VALUE, m;
long count;
while(s <= e) {
m = (s + e) / 2;
// m 시간 안에 입국 심사를 끝낼 수 있는지 확인
count = 0;
for(int i = 0; i < times.length; i++) {
count += m / times[i];
if(count >= n) break;
}
if(count >= n) { // m 시간 안에 입국 심사를 끝낼 수 있다면
answer = m;
e = m - 1; // 더 짧은 시간 안에 끝낼 수 있는지 확인
}
else // m 시간 안에 입국 심사를 끝낼 수 없다면
s = m + 1; // 더 긴 시간 안에 끝낼 수 있는지 확인
}
return answer;
}
}728x90
'Problem Solving > Programmers' 카테고리의 다른 글
| [프로그래머스, 120869] 외계어 사전 (java) (0) | 2025.02.17 |
|---|---|
| [프로그래머스, 120896] 한 번만 등장한 문자 (java) (0) | 2025.02.17 |
| [프로그래머스, 42746] 가장 큰 수 (java) (0) | 2025.02.16 |
| [프로그래머스, 181878] 원하는 문자열 찾기 (java) (0) | 2025.02.16 |
| [프로그래머스, 181879] 길이에 따른 연산 (java) (0) | 2025.02.16 |