*문제 출처는 백준에 있습니다.
문제 제목: 카드 구매하기 / 11052번 (실버 1단계)
문제 사이트: https://www.acmicpc.net/problem/11052
문제 설명

나의 풀이
def main():
# 카드 개수
n = int(input())
# 카드 팩
p = list(map(int, input().split()))
# dp
dp = [0] * (n + 1)
for i in range(1, n + 1): # i는 현재 만들고자 하는 카드 개수
for j in range(1, i + 1): # j는 카드팩에 들어있는 카드 개수
dp[i] = max(dp[i], dp[i - j] + p[j - 1])
print(dp[n])
if __name__=="__main__":
main()

※ 알아야 할 것

완전 탐색과 DP가 같이 있는 문제입니다!
'Coding Test > 백준-Python' 카테고리의 다른 글
| 백준 / RGB거리 2 / 17404번 / Python (0) | 2025.05.13 |
|---|---|
| 백준 / 로또 / 6603번 / Python (0) | 2025.05.12 |
| 백준 / 테트로미노 / 14500번 / Python (2) | 2025.05.09 |
| 백준 / 다리 만들기 2 / 17472번 / Python (0) | 2025.05.07 |
| 백준 / 빵집 / 3109번 / Python (0) | 2025.05.06 |