[백준/Python3] 16194 카드 구매하기2
https://www.acmicpc.net/problem/16194
풀이
'11052 카드 구매하기'와 사실상 같은 문제다. 이전 문제에서는 최댓값을 구하는게 목표라면, 이번 문제는 최솟값을 구해야한다. 따라서 max함수를 min함수로 바꾸는 방식으로 해결할 수 있다.
코드
# Initial
N = int(input())
P = list(map(int, input().split()))
P.insert(0, 0)
dp = [0 for _ in range(N+1)]
answer = 0
# P[n] = 카드 n개가 포함된 카드팩의 가격
# Make DP table
dp[1] = P[1]
for i in range(1, N+1):
temp = float("inf")
for j in range(1, i):
temp = min(temp, dp[i-j] + P[j])
dp[i] = min(temp, P[i])
# Answer
answer = dp[N]
print(answer)
Author And Source
이 문제에 관하여([백준/Python3] 16194 카드 구매하기2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@nyamnyam/백준Python3-16194-카드-구매하기2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)