From 04f4d5c09a529f1c863e3d50918909140ca23cf3 Mon Sep 17 00:00:00 2001
From: Dhirendra Kumar Choudhary <dhirendrachoudhary@yahoo.com>
Date: Wed, 16 Oct 2019 10:50:38 +0530
Subject: [PATCH] Create knapsack.py

---
 Dynamic Programming/knapsack.py | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)
 create mode 100644 Dynamic Programming/knapsack.py

diff --git a/Dynamic Programming/knapsack.py b/Dynamic Programming/knapsack.py
new file mode 100644
index 0000000..eee1c39
--- /dev/null
+++ b/Dynamic Programming/knapsack.py	
@@ -0,0 +1,28 @@
+# Returns the maximum value that can be put in a knapsack of 
+# capacity W 
+def knapSack(W , wt , val , n): 
+  
+    # Base Case 
+    if n == 0 or W == 0: 
+        return 0
+  
+    # If weight of the nth item is more than Knapsack of capacity 
+    # W, then this item cannot be included in the optimal solution 
+    if (wt[n-1] > W): 
+        return knapSack(W , wt , val , n-1) 
+  
+    # return the maximum of two cases: 
+    # (1) nth item included 
+    # (2) not included 
+    else: 
+        return max(val[n-1] + knapSack(W-wt[n-1] , wt , val , n-1), 
+                   knapSack(W , wt , val , n-1)) 
+  
+  
+# To test above function 
+val = [60, 100, 120] 
+wt = [10, 20, 30] 
+W = 50
+n = len(val) 
+print(knapSack(W , wt , val , n))
+# output 220