티스토리 뷰

[Silver 4] 13305 : 주유소 - Python

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

 

13305번: 주유소

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

www.acmicpc.net


설명

첫째줄에 도시의 수를 입력받고, 둘째줄에 도시의 이동거리, 셋째줄에 각 도시에서의 오일 구입가격을 입력받는다

첫번째 도시에서는 두번째 도시로 이동하기 위해 반드시 오일을 구매하여야 한다.

오일을 구매한 도시에서의 가격을 cost라는 변수에 담은 뒤

방문한 도시에서의 오일 가격이 cost 보다 작으면 cost 값을 최신화 시켜준다.

만약 방문한 도시에서의 오일 가격이 cost보다 크면 cost를 그대로 사용한다.

간단한 그리디 알고리즘이다!

N = int(input())
road_length = list(map(int, input().split()))
oil_price = list(map(int, input().split()))
total_price = 0

cost = oil_price[0]

for i in range(0,N-1):
    if oil_price[i] < cost:
        cost = oil_price[i]
        total_price += cost * road_length[i]

    else:
        total_price += cost * road_length[i]

print(total_price)
댓글