[Code Tree] 배낭 채우기 [Python]
2025. 8. 17. 00:13ㆍPS 풀이/Code Tree
문제
https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-knapsack/description
배낭 채우기 설명 | 코드트리
배낭 채우기를 풀며 문제 구성과 난이도를 파악해 적절한 알고리즘을 선정해보세요. 효율적인 코드 작성을 목표로 합니다.
www.codetree.ai
풀이
문제 요약
N개의 보석 중 무게가 M이 넘지 않도록 적절히 골라 최대 값어치를 만드는 냅색 문제다.
아이디어
대표적인 냅색 문제다. N개의 보석에 대해 최대 무게 M ~ 현재 보석의 무게 W[i]에 대한 최댓값을 구해주자.
for i in range(N):
for m in range(M, w[i] - 1, -1):
dp[m] = max(dp[m], dp[m - w[i]] + v[i])
print(dp[M])
풀이 시간
5분
소스코드
https://github.com/rogi-rogi/problem-solving/blob/main/code-tree/Trail-4-Intermediate-Low/DP I/25 배낭 채우기(challenge-knapsack).py
problem-solving/code-tree/Trail-4-Intermediate-Low/DP I/25 배낭 채우기(challenge-knapsack).py at main · rogi-rogi/problem-
Daily Problem Solving Challenges. Contribute to rogi-rogi/problem-solving development by creating an account on GitHub.
github.com
'PS 풀이 > Code Tree' 카테고리의 다른 글
| [Code Tree] 최대 동전 거슬러주기 [Python] (1) | 2025.08.08 |
|---|---|
| [Code Tree] 1, 2, 5 더하기 [Python] (0) | 2025.08.07 |
| [Code Tree] 부분 수열의 합이 M [Python] (1) | 2025.07.12 |
| [Code Tree] 동전 거슬러주기 [Python] (1) | 2025.07.11 |
| [Code Tree] 알바로 부자 되기 [Python] (4) | 2025.07.09 |