도비LOG(跳飛錄)

도비의 AI 엔지니어 도전기

알고리즘

[백준 13305 주유소] - 파이썬 풀이 (실버 3)

나쁜도비 2023. 5. 12. 19:08

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

 

13305번: 주유소

표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1

www.acmicpc.net


문제 요약

출발 지점에서 끝 지점으로 가는 최소 비용 리턴


풀이

기름값이 가장 저렴한 도시에서 기름을 최대한 많이 채우면 된다.
출발 지점부터 끝 지점까지의 가격을 훑어보면서, 최저가 도시를 찾는다면 현재 필요한 비용을 해당 도시의 가격을 기준으로 갱신해준다.

# 백준 13305 주유소 https://www.acmicpc.net/problem/13305
# 도시마다 주유소가 있음.
# 처음에서 끝으로 가는 최소 비용 리턴
n = int(input())
dist = list(map(int, input().split()))
cost = list(map(int, input().split()))

# 가장 싼 주유소를 만났을 때, 해당 주유소의 가격으로 나머지 기름을 채울 수 있도록 한다.
result = 0
c = cost[0]
for i in range(n-1):
    # 현재 도시의 가격이 이전 도시의 가격보다 적다면, c 값을 현재 도시의 가격으로 갱신
    if c > cost[i]:
        c = cost[i]
    # 총 비용에 c와 현재 도로의 길이를 곱해주어 필요한 비용만큼 누적해줌.
    result += c * dist[i]

print(result)
728x90