Algorithm/Programmers

programmers_입국심사_java

owoowo 2023. 3. 13. 20:05
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/43238

 

프로그래머스

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

programmers.co.kr

import java.util.*;

class Solution {
    public long solution(int n, int[] times) {
        long answer = 0;
        
        Arrays.sort(times);
        int timesSize = times.length;
        long left = 0;
        long right =(long) n * times[timesSize-1]; // 최대 걸리는 시간 : 가장 오래 심사하는 사람이 모든 사람 처리하는 경우
        while(left<=right){
            long mid = (left + right)/2; // 중간 시간
            long sum = 0;
            
            for(int i = 0; i<timesSize; i++){
                sum += mid/times[i]; // 각 심사관이 mid 시간동안 처리하는 인원 수의 합
            }
            
            if(sum >= n){ // 더 많이 처리
                right = mid-1;
                answer = mid;
            }else{ // 조금 처리
                left = mid+1;
            }
        }
        
        return answer;
    }
}