하루하나코딩

프로그래머스 : 입국심사 c++

HAHAKO 2023. 2. 22. 22:22

코드

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

long long solution(int n, vector<int> times) {
    long long answer = 0;
    
    sort(times.begin(), times.end());
    
    long long min = 1;
    long long max = n*(long long)times.front();
    
    while(min <= max){
        long long avg = (min + max)/2;
        long long tmp = 0;
        for(int i = 0; i < times.size(); i++){
            tmp += avg/times[i];
        }
        
        if(tmp >= n){
            max = avg -1;
            answer = avg;
        }
        else min = avg + 1;
    }
    
    return answer;
}

알게된 점

이분탐색 테마에 있었음에도 어떻게 푸는지 몰라서 구글링을 했다,,,

그냥 이분탐색 하면 된다.