[LeetCode_134] Gas Station(Python)

그냥·2024년 7월 14일
0

알고리즘

목록 보기
12/23

https://leetcode.com/problems/gas-station/description/

문제


코드

class Solution:
    def canCompleteCircuit(self, gas: List[int], cost: List[int]) -> int:
        if sum(gas) - sum(cost) < 0:
            return -1
        tmp = 0
        ans = 0
        for i in range(len(gas)):
            tmp += (gas[i] - cost[i])
            if tmp < 0:
                tmp = 0
                ans = i + 1
        return ans 

Idea

if tmp < 0: -> 현재 남은 가스로 이동못하는 경우
ans = i + 1 -> 시작점을 다음 인덱스로 초기화

i + 1이 가능한 이유는 처음 if문을 통해서 전체가스 - 전체비용 >= 0인 경우만 고려하기 때문에 마지막 인덱스에 도착했을 때는 반드시 tmp >= 0을 만족해야 함 -> 결과적으로 len(gas) - 1까지의 경우만 생각하므로 ans = i + 1이 성립되게 됨!

0개의 댓글