[백준] 13309: 주유소 - 파이썬[python]

다인·2024년 11월 14일

백준

목록 보기
107/112
post-thumbnail

풀이

  • 문제는 길지만 이해하면 간단하다.
  • for문으로 모든 오일값들을 돌면서 가장 작은 오일값(min)을 저장해두고, min보다 작은 값을 가지면 min을 갱신한다.
  • 그리고 지나온 도로에 최소 오일값을 곱해서 결과값에 더해주면 끝이다.

코드

import sys
input = sys.stdin.readline

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

res = road[0] * oil[0]
min = oil[0]
for i in range(1, N-1):
    if min > oil[i]:
        min = oil[i]
    res += min * road[i]

print(res)
  • for문의 range에 주의하자. oil의 마지막 값은 필요없으니 road의 길이에 맞추어주면 된다.

결과

서브태스트 문제는 처음이었는데 신기하당

0개의 댓글