0-1 배낭 문제 (Knapsack Problem) : 담을 수 있는 무게의 최댓값이 정해진 배낭에 일정한 가치와 무게가 정해져 있는 짐들을 골라 배낭에 담기는 최대의 가치를 구하는 문제 특징 ① 동적 계획법(다이나믹 프로그래밍, DP : Dynamic Programming)으로 해결할 수 있다. ② 다른 버전으로는 물건을 쪼갤 수 있는 Fraction Knapsack Problem이 있다. 알고리즘 ① 물건의 정보를 표에 저장해둔다 ② DP배열을 만든다 (열은 물건 0~i번까지 넣을 수 있음을 의미하고 행은 0~n까지 넣을 수 있음을 의미한다) - i, j에서 i번째 물건까지 중에 배낭에 넣을 수 있는지 없는지 판단하여 최적의 방법을 저장한다. ㄴ 넣는 것이 최적 = [i - 1][j - i번째 물건 ..