본문 바로가기

알고리즘

python 백준13305 주유소(BOJ13305)

문제링크 : https://www.acmicpc.net/problem/13305

 

13305번: 주유소

표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1

www.acmicpc.net

문제가 길어서 처음에 보면 좀 당황스러울수 있는데

경험적으로 이렇게 문제가 길면 아이디어가 쉽게 나오는것같다. (뉴비수준의 문제일때)

그래서 어렵지않게 한방에 성공!

import sys

input = sys.stdin.readline
#도시 수
n = int(input())

#거리, 주유소가격
distance = list(map(int,input().split()))
oil_cost = list(map(int, input().split()))

#첫 주유소보다 기름값이 싼 주유소가 나올때까지의 거리만큼 기름넣음
paid = 0
min_cost = 1000000001
for i in range(n-1):
  if oil_cost[i] < min_cost:
    min_cost = oil_cost[i]
  paid += min_cost * distance[i]
print(paid)