반응형
카드 구매하기와 정말 비슷하다.
문제
https://www.acmicpc.net/problem/16194
위의 문제와 이 문제의 가장 큰 차이점은, N장의 카드를 갖기 위해서 지불해야하는 금액의 "최댓값"을 구하냐, "최솟값"을 구하냐의 차이이다. 전체적인 로직은 거의 비슷하다.
달라진 점으로는, dp를 입력받은 list로 수정을 해주었고,
이전 포스팅에서는 보기 편하게 1로 카운트해줬지만, 0부터 시작하게 해주었다.
해결 코드
import sys
input = sys.stdin.readline
num = int(input())
num_list = list(map(int, input().split()))
dp = num_list
for i in range(0, num):
for j in range(1, i+1):
dp[i] = min(dp[i], dp[i-j]+num_list[j-1])
print(dp[num-1])
반응형
'공부 > 백준\BeakJoon' 카테고리의 다른 글
백준 14888번 - 연산자 끼워넣기 python (0) | 2024.07.25 |
---|---|
[BEAKJOON] 백준 2667 - 단지번호붙이기 (0) | 2024.04.21 |
[BEAKJOON] 백준 11053번 : 가장 긴 증가하는 부분 수열 - 파이썬 (0) | 2023.08.19 |
[BEAKJOON] 백준 2193번 : 이친수 - 파이썬 (0) | 2023.08.15 |
[BEAKJOON] 백준 10844번 : 쉬운 계단 수 - 파이썬 (0) | 2023.08.15 |