BAEKJOON #13305 주유소

2021. 5. 10. 14:14개발노트

이 문제의 저작권은 BAEKJOON에 있습니다.

https://www.acmicpc.net/problem/13305

 

풀이

  1. 주석참고
# 주유소
# https://www.acmicpc.net/problem/13305

n = int(input())
# 이동에 소요되는 기름
oil = list(map(int, input().split(" ")))
# 주유소 기름가격
pay = list(map(int, input().split(" ")))

# 다음 주유소까지 필요한 기름을 넣어야하므로 초기값 넣어줌 
# 필요한 돈
need_money = oil[0] * pay[0]
# 기름 최저가 저장
cheap = pay[0]
# 다음 경로까지 필요한 기름
dist = 0

for i in range(1, n-1):
    # 이전 주유소보다 기름이 싸다면
    if pay[i] < cheap:
        need_money += cheap * dist
        dist = oil[i]
        cheap = pay[i]
    # 이전 주유소보다 기름이 비싸면 
    else:
        # 필요 기름에 계속 추가
        dist += oil[i]
    # n - 2번째 까지 가격만 비교하면 됨
    if i == n - 2:
        need_money += cheap * dist
print(need_money)