# Coding/# 백준
[백준 / 13305] 주유소 - Python
강현들
2021. 7. 23. 17:23
728x90
반응형
https://www.acmicpc.net/problem/13305
13305번: 주유소
표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1
www.acmicpc.net
<풀이>
1. 앞에 가격보다 뒤의 가격이 크면 앞의 가격으로 사는 것이 좋다.
따라서 뒤의 가격이 더 크면 앞의 값중 제일 작은 값으로 바꾼다.
2. 뒤에서부터 거꾸로 가면서 가격이 더 커지면 뒤에서 해당 도시까지 온 거리를 해당 기름 값으로 계산해준다.
<전체 코드>
n = int(input())
dis = list(map(int, input().split()))
cost = list(map(int, input().split()))
m = float('inf')
for i in range(n-1):
if cost[i] < m:
m = cost[i]
else:
cost[i] = m
cost.pop()
cost.reverse()
dis.reverse()
oil = 0
temp_len = 0
for i in range(n-2):
if cost[i] < cost[i+1]:
temp_len += dis[i]
oil += temp_len*cost[i]
temp_len = 0
else:
temp_len += dis[i]
temp_len += dis.pop()
oil += temp_len*cost.pop()
print(oil)
728x90
반응형