알고리즘/백준

[파이썬] BOJ_13305(주유소)

딱따구르리 2021. 2. 24. 15:46
728x90
반응형

문제

 

www.acmicpc.net/problem/13305

 

13305번: 주유소

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

www.acmicpc.net


 

해설

 

첫 도시에서는 가격에 상관없이 무조건 다음 도시로 이동할 수 있는 양의 기름이 필요하다.

두번째 도시부터는 현재 도시의 주유소 가격이 최소인지를 따지는 것이 필요하다.

 

그러나 첫 도시부터 가격이 최소인지를 따지게 만들면 코드를 더 간결하게 쓸 수 있다.

minOil이라는 최소 가격을 넣을 변수를 선언할 때,

문제에 제시되어 있는 리터당 가격의 최댓값을 넣어두면 모든 도시에 같은 코드를 적용시킬 수 있다.

 

그저 최소 기름 가격을 구해,

한 도시의 이동 거리만큼 계속 가격을 더해주면 된다.

 

 


코드

 

-파이썬

#백준 13305(주유소)
import sys
input = sys.stdin.readline

n = int(input())  #도시의 개수

road = list(map(int, input().split()))  #도로의 길이
oil = list(map(int, input().split()))  #주유소 리터당 가격

cost = 0  #비용
minOil = 1e9  #1000000000

for i in range(n - 1):
    minOil = min(minOil, oil[i])
    cost += (road[i] * minOil)

print(cost)
728x90
반응형