최대 1 분 소요

사용 언어: Python3

문제

주유소

풀이

나의 풀이

from collections import deque

N = int(input())
dist = list(map(int, input().split()))
price = list(map(int, input().split()))

q = deque()
for i in range(N-1):
    q.append((price[i], dist[i]))

ans = 0
min_oil_price = 1000000001 # ✅ 현재까지 방문한 도시들 중 가장 저렴한 기름 가격 
while q:
    cp, cd = q.popleft() # cp: current price / cd: current dist
    if min_oil_price > cp:
        ans += cd * cp
        min_oil_price = cp # ✅ 저렴한 가격 갱신
    else:
        ans += cd * min_oil_price

print(ans)
  • 테스트 케이스: 성공
  • 제출 결과: 성공

다른 풀이

N = int(input())
dist = list(map(int, input().split()))
price = list(map(int, input().split()))

ans = 0
mn = 1e9 # ✅ 현재까지 방문한 도시들 중 가장 저렴한 기름 가격 
for i in range(len(dist)):
    mn = min(mn, price[i])
    ans += dist[i] * mn

print(ans)
  • 테스트 케이스: 성공
  • 제출 결과: 성공


💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기