코드

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)    

문제 해설

전체 도시를 움직이는데 드는 최소 기름값을 구하는 문제이므로, 이동할 때 마다 주유소의 기름값을 최솟값으로 계속 갱신해주면서 각 도시를 이동할 때 마다 드는 비용을 누적하여 최종 출력해주면 되는 문제.

상세한 설명은 주석으로 대신합니다!

댓글남기기