백준 13305번 주유소 파이썬

박슬빈·2021년 9월 9일
0

알고리즘

목록 보기
5/40

문제

입력 , 출력

solution

import sys

input = sys.stdin.readline
n = int(input())
arrlen = list(map(int, input().split()))
arr = list(map(int, input().split()))
res = 0
cur = arr[0]
res = arr[0] * arrlen[0]
for i in range(1, n - 1):
    if cur > arr[i]:
        cur = arr[i]
    res += cur * arrlen[i]
print(res)

설명

arrlen 에는 다음 주요까지 가는 길이(km) 가 들어 있고 arr에는 현재 주유소 기름값이 저장되어있다.
초기값으로는 처음 주유소에서 무조건 한번은 넣어야하니 arr[0] * arrlen[0] 을 넣었다.
주유소에서 기름을 무제한으로 넣을 수 있다고 했으므로 가장 싼곳에서 제일 많이 넣는게 가장 싸게 이동할 수 있다.
그래서 cur에는 현재 가장 싼 주유소의 값을 저장하기 위해 arr[i] 가 cur 작을 경우
즉 앞에서 있던 주유소중에 가장 싼 값 보다 더 낮을경우
cur에 arr[i]값을 넣어주면 최솟값으로 이동할 수 있다.

후기

문제를 읽어보니 생각보다 쉽게 풀렸다.
독해능력을 더 키워야 할것같다.

profile
이것저것합니다

0개의 댓글