이분탐색 문제래 https://programmers.co.kr/learn/courses/30/lessons/43238
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
int calc(vector<int> vect, ll ans)
{
int people = 0;
for(int i=0; i<vect.size(); i++)
{
people += (ans / vect[i]);
}
return people;
}
long long solution(int n, vector<int> times) {
long long answer = 0;
ll lo = 1;
ll hi = 2;
ll mid;
int tmp;
while(1)
{
tmp = calc(times, hi);
if(tmp < n)
{
hi *= 2;
}
else
{
mid = (lo+hi)/2;
tmp = calc(times, mid);
if (tmp >= n)
{
hi = mid;
answer = mid;
}
else
{
lo = mid+1;
}
if(lo >= hi)
{
break;
}
}
}
return answer;
}
댓글 0