Chap 5-1. 0-1 배낭 문제
0, 1 배낭 문제 조건 4kg을 담을 수 있는 배낭 넣을 수 있는 물건 A, B, C가 있다. B의 무게 = 4, 가치 = 30 C의 무게 = 3, 가치 = 20 A의 무게 = 1, 가치 = 15 가장 단순한 방법은 모든 물건의 조합을 시도를 해서 총 가치를 구한 다음에 가장 가치가 높은 경우를 선택하는 것이다. 이렇게 한다면 지수 시간의 시간 복잡도를 갖는 문제이다. 2^n의 경우의 수이다. 이 문제를 (1) 재귀 방법으로 풀 수 있고 (2) DP방법으로도 풀어볼 수 있다. (1) 재귀 방법 #include #define MAX(a, b) ((a) > (b) ? (a) : (b)) int knapSack(int W[], int V[], int n, int c) { if(n 다음 물건으로 넘어감, 배낭..