[프로그래머스] Level3 - 입국심사

 
by 박신종

> 문제

문제 : [입국심사]



> 문제풀이

이진탐색으로 풀었다.

class Solution {
    static public long solution(int n, int[] times) {
        long left = 0;
        long right = Long.MAX_VALUE;
        long mid = 0;
        while(left <= right){
        	mid = (left+right)/2;
            if(check(n,mid,times)){
                right = mid - 1;
            }else left = mid + 1;
        }
        return right + 1;
    }
    
  
    static boolean check(int n, long time, int[] times){
    	long tmp = 0;
        for(int i=0; i<times.length; i++){
            tmp += time/times[i];
            if(tmp>=n) return true;
        }
        return tmp>=n;
    }
}




문제 출처 : Programmers