input
n
n ≤ 1,000,000,000times
times ≤ 100,000output
풀이 전략
1, e를 최대 시간 n * times.max()e=mids=mid+1#include <string>
#include <vector>
#include <algorithm>
using namespace std;
long long solution(int n, vector<int> times) {
sort(times.begin(), times.end());
long long s = 1;
long long e = n * (long long)times.back();
while (s < e) {
long long mid = (s+e) / 2;
long long passed = 0;
// mid라는 시간 동안 최대 몇명 심사 가능한지 판단
for (auto time : times) {
passed += mid / (long long)time;
}
if (passed >= n) {
e=mid;
} else {
s=mid+1;
}
}
return s;
}