[Python]알고리즘/백준

[그리디 알고리즘] ▲ 13305번 - 주유소(완전탐색)

HSY_mumu 2022. 3. 23. 22:47
728x90

[백준] 13305번 - 주유소

1) 문제 해결 아이디어

아이디어를 떠올리는 것은 어렵지 않았으나 이것을 수식화하는 것이 좀 오래걸렸다.

여기서 핵심은 현재까지 최소 가격보다 더 작은 값의 가격이 나타나면 최소가격(target)을 갱신하는 것이다. 비용(cost)는 거리(distance[i])에 가격(price[i])을 곱한 값으로 계산한다.

 

2) 소스코드

n = int(input())  # 도시 수
distance = list(map(int, input().split()))  # 도시 간 거리(n-1 개)
price = list(map(int, input().split()))  # 리터당 가격(n 개)

cost = 0     # 총 비용
target = 1e9 # 현재까지 최소 가격
for i in range(n-1):
  # 현재 가격이 현재까지 최소 가격이 보다 작으면
  if(target > price[i]):
    # 최소 가격 갱신
    target = price[i]
  cost += distance[i] * target  # 최소 가격으로 계산
    
print(cost)
728x90