코딩테스트/PYTHON

[백준][PYTHON] 13305번 주유소

_알파카 2024. 6. 5. 15:37
728x90

문제

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

 

문제 접근

전체 주유소 이용 가격을 최소화하기 위해서는 가장 싼 곳에서 가장 많이 구매하여 가장 많이 이동해야한다. 

주유소의 기름 가격을 순회하며, 가장 싼 곳의 주유소를 찾고, 

해당 주유소의 가격이 가장 싸다면 도시를 이동할 만큼의 기름을 구매한다. 

만약, 해당 주유소의 가격이 최소 금액보다 싸지 않다면 

최소 금액의 주유소에서 최대한 많이 구매하도록 한다. 

 

# 도시의 개수
N = int(input())

# 인접한 두 도시를 연결하는 도로의 길이를 왼쪽부터 제공
length = list(map(int, input().split()))

# 주요소의 리터당 가격
price = list(map(int, input().split()))

answer = 0
# 최소 금액
minPrice = price[0]

# for문을 순회하며 주유소 가격 순회
for p in range(N-1):
    # 저번 주유소보다 지금 주유소의 가격이 싸면, minPrice로 저장
    if price[p] <= minPrice:
        minPrice = price[p]
    
    # 최소 금액으로 한 도시 이동 가능 
    # 만약 해당 주유소가 저번보다 비싸다면, 그 전의 minPrice 금액으로 더 이동
    answer += (minPrice * length[p])

print(answer)

 

728x90