백준 13305 - 주유소 (Python3)
코드
n = int(input())
dist = list(map(int, input().split()))
price = list(map(int, input().split()))
# 최종 주유한 비용을 담을 변수
answer = 0
# 가장 싼 주유소 기름값
# 최초 주유소는 무조건 주유를 해야하므로
# 처음 최솟값은 해당 값으로 지정
min_price = price[0]
# 마지막 주유소의 기름값은 고려하지 않으므로
# n-1번까지 반복을 시행한다
for i in range(n-1):
# 이전까지의 최솟값보다
# 현재 도착한 주유소의 가격이 더 작다면
# 최솟값을 현재 주유소의 가격으로 바꿔줌
if price[i] < min_price:
min_price = price[i]
# 최솟값 * 이동 거리를 곱해줌 => 주유 비용
# 이를 answer에 누적합해줌
answer += min_price * dist[i]
print(answer)
문제 해설
전체 도시를 움직이는데 드는 최소 기름값을 구하는 문제이므로, 이동할 때 마다 주유소의 기름값을 최솟값으로 계속 갱신해주면서 각 도시를 이동할 때 마다 드는 비용을 누적하여 최종 출력해주면 되는 문제.
상세한 설명은 주석으로 대신합니다!
댓글남기기