기름값이 가장 적은 도시가 어디인지 먼저 알아내야한다.
그 도시가 처음 출발하는 도시면 간단하고, 아닐 경우, 처음 도시에서 기름값이 가장 싼 도시까지 가는 도중에 그나마 기름값이 싼곳을 거쳐가면 최소비용을 구할 수 있다.
그리고 가장 마지막 도시의 기름값을 알 필요가 없어서 저장하지 않거나 입력받고 삭제하는 것을 추천한다.
n = int(input())
distance = list(map(int, input().split()))
cost = list(map(int, input().split()))
cost.pop()
first_cost = cost[0]
min_cost = min(cost)
min_cost_loc = cost.index(min_cost)
pay = 0
p_cost = first_cost
if min_cost_loc > 0:
for i in range(min_cost_loc):
if p_cost > cost[i]:
p_cost = cost[i]
pay += p_cost*distance[i]
pay += min_cost*sum(distance[min_cost_loc:])
else:
pay = min_cost*sum(distance)
print(pay)
'백준' 카테고리의 다른 글
A → B - 16953번 (0) | 2022.09.14 |
---|---|
AC - 5430번 (0) | 2022.09.13 |
DFS와 BFS - 1260번 (0) | 2022.09.10 |
나무 자르기 - 2805번 (0) | 2022.09.08 |
소수 구하기 - 1929번 (0) | 2022.09.06 |
댓글