자료구조&알고리즘/백준
백준 | [파이썬 Python] 13305 주유소
두잇 두두
2024. 5. 18. 17:45
728x90
배경
https://www.acmicpc.net/problem/13305
코드
import sys
input = sys.stdin.readline
n = int(input())
dist = list(map(int, input().split()))
price = list(map(int, input().split()))
result = 0
maxx = price[0]
for i in range(n-1):
if price[i] < maxx:
maxx = price[i]
result += dist[i]*maxx
print(result)
설명
방법만 알면 어렵지 않은 문제이다.
가장 값이 적은 주유소를 추적하면서 거리를 곱해주면 된다
for문을 돌면서 새로운 주유소가 이 전 주유소 보다 값이 큰 지 확인한다.
아니라면 그 전 주유소에서 다음으로 이동 하는데 필요한 기름을 넣어 주면 된다.
배운 점
예전 소마 테스트에서 비슷한 문제가 나왔었는데 그때는 dfs라고 생각했는데 지금 보니 그리디 문제인가? 싶다