본문 바로가기
Study/Coding Test

[프로그래머스] 입국심사 Python, C++

by 들숨날숨흡 2023. 8. 1.
728x90

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

 

프로그래머스

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

programmers.co.kr

 

(1) C++

#include <string>
#include <vector>
#include <algorithm>
#include <string.h>

using namespace std;

long long solution(int n, vector<int> times) {
    long long answer = 0;
    sort(times.begin(), times.end());
    long long start = 1;
    long long end = n * (long long)times.back();
 
    
    while(start <= end){
        long long mid = (start + end) / 2;
        long long person = 0;
        
        for(int i = 0; i < times.size(); i++){
            person += (mid / (long long)times[i]);
        }
        
        if (person >= n){
            end = mid - 1;
            answer = mid;
        }
        else{
            start = mid + 1;
        }
        
    }

    return answer;
}

(2) Python

def solution(n, times):
    times.sort()
    start = 1
    end = max(times) * n
    
    while (start <= end):
        mid = (start + end) // 2
        people = 0
        for time in times:
            people += (mid // time)
        
        if people < n:
            start = mid + 1
        else:
            answer = mid
            end = mid - 1
            
    return answer
728x90