robert-min / dev-blog

김민준 - project 정리한 repo입니다.
0 stars 0 forks source link

231115 - 이분탐색 : 입국심사 #110

Open robert-min opened 1 year ago

robert-min commented 1 year ago

https://school.programmers.co.kr/learn/courses/30/lessons/43238?language=java

입국심사

import java.util.*;

class Solution {
    static long left, right;

    public long solution(int n, int[] times) {
        long answer = 0;

        // 1
        Arrays.sort(times);
        left = 1;

        // 최대 시간 : 가장 오래 걸리는 심사대에서 모든 사람이 심사를 받는 경우
        right = (long) times[times.length - 1] * (long) n;

        // 2
        while (left <= right) {
            long mid = (left + right) / 2;
            long S = 0;
            for (long t : times) {
                S += (mid / t);
            }

            if (S >= n) {
                answer = mid;
                right = mid - 1;
            } else {
                left = mid + 1;
            }
        }
        return answer;
    }
}