134. Gas Station

Doyeon Kim·2022년 10월 22일

코딩테스트 공부

목록 보기
131/171

문제 링크 : https://leetcode.com/problems/gas-station/description/


순환 경로를 따라 n개의 가스 충전소가 있고, i번째 가스 충전소의 가스량은 gas[i]이다.
연료 탱크가 무제한인 차가 있고 i번째 가스 충전소에서 다음 (i + 1)번째 가스 충전소까지 이동하는데 가스비용 cost[i]가 든다. 가스 충전소 중 한 곳에서 빈 탱크로 여행을 시작하는데
두 개의 정수 배열(gas, cost)이 주어질 때, 시계 방향으로 순환할 수 있으면 시작 위치를, 그렇지 않으면 -1을 반환해야 하는 문제이다.

class Solution:
    def canCompleteCircuit(self, gas: List[int], cost: List[int]) -> int:
        if sum(gas) < sum(cost):
            return -1

        fuel, start = 0 ,0
        for i in range(len(gas)):
            fuel += (gas[i]-cost[i])
            if fuel < 0 :
                fuel = 0
                start = i + 1
        return start 

먄약 총 가스의 양이 총 비용보다 낮으면 어느 위치에서 출발하던지 한 바퀴를 돌 수가 없다.
이 경우 바로 -1을 return

현재 인덱스에서 다음 인덱스로 가지 못하면 fuel<0일 경우,
start를 다음 인덱스로 지정해주고 fuel은 0으로 초기화하며 탐색

profile
성장하고 도전하는 개발자. 프로그래밍 좋아하세요?

0개의 댓글