코딩테스트 준비/프로그래머스

[프로그래머스 LV3] - 입국심사(이분탐색) c++

SeoburiFaust 2024. 2. 25. 16:55

문제

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

 

프로그래머스

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

programmers.co.kr

접근방법

through GPT..

코드

#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
#define MAX 1000000000
using namespace std;

long long solution(int n, vector<int> times) {
    long long answer = 0;
    long long left = 0;
    long long right = *max_element(times.begin(), times.end()) * static_cast<long long>(n);
    while(left < right) {
        long long mid = (left + right) / 2;
        
        long long peaple = 0;
        for (auto t : times) {
            peaple += mid / t;
        }
        if (peaple < n) left = mid + 1;
        else right = mid;
    }
    
    answer = left;
    
    return answer;
}

개선할 점

이야 이분탐색은 이렇게 하는 것이구만...