[백준/Python]13305_주유소

2021. 6. 14. 00:26백준 알고리즘

문제

https://www.acmicpc.net/problem/13305

 

13305번: 주유소

표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1

www.acmicpc.net

풀이

n - 1 번 순회하는 반복문으로 푼다.

매 반복마다 리터당 가격의 최소 값을 전역 변수(min_cost)에 저장하고, min_cost와 이동거리(road[i])의 곱을 전역 변수(total)에 누적해나간다.

코드

import sys

n = int(sys.stdin.readline().rstrip())
roads = list(map(int, sys.stdin.readline().rstrip().split()))
costs = list(map(int, sys.stdin.readline().rstrip().split()))
total = 0
min_cost = int(1e9)

for i in range(n - 1):
    min_cost = min(min_cost, costs[i])
    total += min_cost * roads[i]
print(total)