[Python/파이썬] 백준 13305번 - 주유소

반응형

문제 설명

 

입출력 예제

 


풀이 코드

왼쪽에서 제일 오른쪽 도시로 이동하는 최소의 비용을 구하기 위해서는 가장 싼 주유소에서 기름을 넣는 것이 이득이다.

먼저 왼쪽에서 출발할 때는 기름이 없기 때문에 시작지점에서 먼저 기름을 넣고 시작하는데

가장 값이 싼 주유소를 찾기 위해 첫 번 째 주유소를 가장 값이 싼 주유소로 저장해 놓은 뒤

반복문을 통해 저장한 주유소와 현재 위치의 주유소의 기름 값을 비교해 가장 값이 싼 주유소를 갱신해서 기름을 넣으면 된다.

 

정답 코드
import sys
input = sys.stdin.readline

n = int(input())
distances = list(map(int, input().split()))
oilCosts = list(map(int, input().split()))

total = distances[0] * oilCosts[0]
minCost = oilCosts[0] # 가장 값이 싼 주유소

for cur in range(1, n - 1):
    # 가장 값이 싼 주유소가 현재 주유소보다 비쌀 경우 현재 주유소를 가장 싼 주유소로 바꿔준다.
    if minCost > oilCosts[cur]: 
        minCost = oilCosts[cur]
    total += minCost * distances[cur]

print(total)