Python으로 구현한 13305번 주유소 문제 풀이입니다.
https://www.acmicpc.net/problem/13305
n = int(input())
distance = list(map(int, input().split()))
price = list(map(int, input().split()))
result = 0
m = price[0]
for i in range(n - 1) :
if price[i] < m :
m = price[i]
result += distance[i] * m
print(result)
1. 첫번째 주유소는 무조건 가야하므로 m에 첫번째 주유소의 리터당 가격을 할당한다.
2. n - 1까지의 범위로 반복문을 수행하는데, 현재 확인하고 있는 가격과 m을 비교한 후, m이 더 크다면 현재 확인하고 있는 가격으로 갱신한다.
3. m에 현재까지의 최소 비용이 담겨져 있으므로, 현재 확인하고 있는 거리 값에 m을 곱하여 result에 누적한다.
4. 반복문이 종료되면 최종적으로 result를 출력한다.
'백준(Python) 풀이 > 그리디 알고리즘' 카테고리의 다른 글
백준(Python) 2847번 게임을 만든 동준이 풀이 (0) | 2021.12.18 |
---|---|
백준(Python) 1543번 문서 검색 풀이 (0) | 2021.12.18 |
백준(Python) 12723번 Minimum Scalar Product (Small) 풀이 (0) | 2021.12.15 |
백준(Python) 11597번 Excellence 풀이 (0) | 2021.12.15 |
백준(Python) 13238번 Bitcoin investment 풀이 (0) | 2021.12.15 |