[BOJ] 13305 주유소

그리디 알고리즘


내가 생각하는 해당 문제의 그리디 정당성은 다음과 같다

  • 주유소에서 넣을 수 있는 기름의 양이 제한되어 있지 않다
  • 뒤 주유소의 가격에 의해 앞에서의 결과가 달라지지 않는다 → 리터당 가격 * 다음 주유소까지의 거리 만 신경 쓰면 된다는 점
  • 뒤 주유소가 더 비싸다면, 앞 주유소의 가격대로 계산하면 된다.
import sys
N = int(sys.stdin.readline())
length = list(map(int, sys.stdin.readline().split()))  # N-1 개
cost = list(map(int, sys.stdin.readline().split()))    # N 개
tmp = cost[0]
answer = 0
for i in range(N-1):
    if cost[i] < tmp:   # 현재 가격이 싸면
        tmp = cost[i]   # 해당 가격으로 업데이트
    answer += (tmp * length[i])
print(answer)

태그:

카테고리:

업데이트: