Algorithm

LeetCode 2187. Minimum Time to Complete Trips

쿠케캬캬 2023. 3. 7. 21:40
반응형

https://leetcode.com/problems/minimum-time-to-complete-trips/

 

Minimum Time to Complete Trips - LeetCode

Can you solve this real interview question? Minimum Time to Complete Trips - You are given an array time where time[i] denotes the time taken by the ith bus to complete one trip. Each bus can make multiple trips successively; that is, the next trip can sta

leetcode.com

 

이진 탐색을 이용하여 풀 수 있었습니다.

가능한 시간의 범위를 좁혀가면서 최소 시간을 구해줍니다.

class Solution {
public:
    long long minimumTime(vector<int>& time, int totalTrips) {
        long long l = 1, r = 100000000000000;
        long long res = r;
        while(l <= r) {
            long long m = (l + r) / 2;
            if(isCompletable(time, totalTrips, m)) {
                r = m - 1;
                res = m;
            } else {
                l = m + 1;
            }
        }
        return res;
    }

    bool isCompletable(vector<int>& time, long long totalTrips, long long t) {
        for(int tm : time) {
            totalTrips -= t / tm;
            if(totalTrips <= 0) {
                return true;
            }
        }
        return false;
    }
};
반응형