본문 바로가기

하루하나코딩

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

코드

#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;
}

알게된 점

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

그냥 이분탐색 하면 된다.

'하루하나코딩' 카테고리의 다른 글

백준 14501 : 퇴사 c++  (0) 2023.03.06
백준 9095 : 1, 2, 3 더하기 c++  (0) 2023.03.06
백준 1654 : 랜선 자르기 python  (0) 2023.02.21
백준 18290 : NM과 K(1) c++  (0) 2023.02.17
백준 15657 : N과 M(8) c++  (0) 2023.02.17