[BOJ]백준#13305 Silver 4 주유소🚗🚙 (Python, 파이썬)

임준성·2022년 5월 24일
0

백준 Algorithm

목록 보기
12/59
post-thumbnail

백준 13305번
https://www.acmicpc.net/problem/13305


문제



후기

⏰ 풀이시간 10분 ++⏰

보자마자 바로 풀이 방법을 떠올린 문제다.

출발하기 위해서는 무조건 처음 일단 기름을 넣어야 한다.

그리고 2번째 주유소 부터가 이 문제의 핵심인데, 만약 이 전에 있던 주유소의 기름값이

새로 방문한 주유소의 기름값 보다 싸면, 이 전의 주유소에서 미리 충전 하는것이 최소로

비용을 사용하게 되는 것이다.

이 문제를 어떻게 해결할까 생각 했더니, 그냥 단순히 새로 방문한 주유소의 기름값을

지금까지 방문한 주유소 중 가장 기름값이 쌌던 곳의 값으로 갱신 해주면 되는 것이다.

이러한 방식으로 마지막 주유소에 도착하기 전까지 갱신 해주면

원하는 답을 얻을 수 있었다.

나의 풀이

import sys

input = sys.stdin.readline

N= int(input())

dis = list(map(int,input().split()))

oil = list(map(int,input().split()))

result = 0

result += dis[0] * oil[0] #처음 움직이려면 무조건 기름을 넣고시작한다.

min_oil = oil[0] #지금까지 가장 싼 주유소를 저장할 예정 


for i in range(1,N-1): #2번째 부터 마지막 주유소까지  i번째 주유소의 기름이 i+1번째 주유소 보다 싸다면, i+1번째 주유소의 기름값을 i번째 주유소의 기름값으로 바꿔둔다. 

    if min_oil < oil[i]:

        oil[i] = min_oil
    
    else:

        min_oil = oil[i]

    
    result += dis[i] * oil[i]  
    

print(result) 
profile
아무띵크 있이

0개의 댓글