배낭 문제(Knapsack Problem)
배낭 문제란 배낭에 담을 수 있는 무게의 최대값이 정해져 있고,
일정한 가치와 무게가 정해져있는 짐들을 배낭에 담을 때,
가치의 합이 최대가 되도록 짐을 고르는 방법을 찾는 문제이다.
배낭 문제는
1) 물건을 쪼갤 수 있는 배낭문제(Fraction Knapsack Problem)와
ex) 설탕, 소금등
2) 물건을 쪼갤 수 없는 배낭문제(0/1 Knapsack Problem)으로 나뉜다.
1) 물건을 쪼갤 수 있는 배낭문제의 경우는 가치가 큰 물건부터 담고, 남은 무게 만큼 물건을 쪼개는 방식으로
그리디 알고리즘으로 해결할 수 있다.
2) 물건을 쪼갤 수 없는 배낭문제의 경우는 동적계획법(DP, Dynamic Programming)을 활용해 해결할 수 있다

'알고리즘' 카테고리의 다른 글
최소 스패닝 트리 (MST, Minimum Spanning Tree) (0) | 2022.03.03 |
---|---|
0-1 BFS (0) | 2022.01.19 |
플로이드-워셜 ( Floyd-Warshall) (0) | 2022.01.19 |
다익스트라 최단경로 (Dijkstra) (0) | 2022.01.19 |
다이나믹 프로그래밍 (Dynamic programming) (0) | 2022.01.19 |