이분탐색 문제래 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;

}