Gas Station

ㅋㅋ·2023년 1월 7일

알고리즘-leetcode

목록 보기
87/135

두 정수형 벡터를 받게 되는데,

벡터에는 인덱스 기준 가스 스테이션에서 차에 채울 수 있는 가스량과

다음 가스 스테이션까지 필요한 가스량이 적혀 있다.

특정 가스 스테이션에서 시작하여 다시 시작 지점까지 돌아갈 수 있는지 판단하는 문제

돌아갈 수 없다면 -1을 반환하고 돌아갈 수 있다면 해당 인덱스를 반환해야 한다.

class Solution {
public:
    int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {
        
        int length = gas.size();

        int sumGas{0};
        for (int i = 0; i < length; i++)
        {
            sumGas += (gas[i] - cost[i]);
        }

        if (sumGas < 0)
        {
            return -1;
        }

        int nowGas{gas[0]};
        int startPosition{0};
        for (int i = 1; i < length; i++)
        {
            nowGas -= cost[i - 1];
            if (nowGas < 0)
            {
                nowGas = gas[i];
                startPosition = i;
                continue;
            }

            nowGas += gas[i];
        }

        return startPosition;
    }
};

0개의 댓글