본문 바로가기
프로그래머스

입국심사 C++

by paysmile 2019. 9. 28.
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

long long cal(long long mid,vector<int> v) {
	long long num = 0;

	for (int i = 0; i < v.size(); i++) {
		num += (mid / v[i]);
	}
	return num;
}

long long solution(int n, vector<int> times) {
	sort(times.begin(), times.end());
	long long maxvalue = times[times.size() - 1];
	long long answer = maxvalue * n;
	long long low = 0;
	long long high = answer;

	while (low <= high) {
		long long mid = (low + high) / 2;
		long long value = cal(mid, times);
		if (value >= n) {
			answer = min(answer, mid);
			high = mid - 1;
		}
		else
			low = mid + 1;
	}
	return answer;
}

'프로그래머스' 카테고리의 다른 글

이중우선순위큐 C++  (0) 2019.09.29
여행경로 C++  (0) 2019.09.29
디스크 컨트롤러  (0) 2019.09.28
섬 연결하기  (0) 2019.09.25
가장 먼 노드  (0) 2019.09.23