[BOJ 13305] 주유소 (Python)

박지훈·2021년 4월 7일
0

문제

링크



풀이

도시를 이동하면서 이전 도시에서 주유했던 주유소의 리터당 가격보다 더 싼 도시의 주유소가 나오면 해당 도시에서 주유를 하도록 하는 로직으로 풀었다!

출발할 때 무조건 첫 도시에서 다음거리만큼 주유를 해야하므로 첫 도시의 주유소 리터당 가격 x 첫 도시와 두번째 도시 사이의 거리를 계산하였다. 그리고 맨 마지막 도시의 주유소에서 주유할 경우가 없기 때문에 맨 마지막 도시의 주유소 리터당 가격을 삭제하였다. 마지막으로 현재 주유한 주유소의 리터당 가격을 저장하고, 현재 가격보다 더 싼 도시의 주유소가 나오면 해당 도시의 주유소 리터당 가격으로 갱신한 후 이동하는 거리만큼 계속 곱하여 답을 구했다.



코드

import sys

input = sys.stdin.readline
N = int(input())
dist = list(map(int, input().split()))
won = list(map(int, input().split()))
won.pop()  # 맨 마지막 도시의 주유소 리터당 가격 필요없음

ans = 0
part = won[0]   # 주유소 가격
ans = part * dist[0]

# 무조건 리터당 가격이 싼 도시에서 주유해야 이득을 보게됨
for i in range(1, len(won)):
    if part > won[i]:
        part = won[i]
        ans += part * dist[i]
    else:
        ans += part * dist[i]

print(ans)
profile
Computer Science!!

0개의 댓글