Commit 41a35d3
Changed files (1)
lib
lib/coins.rb
@@ -0,0 +1,21 @@
+require 'pp'
+# https://www.topcoder.com/community/data-science/data-science-tutorials/dynamic-programming-from-novice-to-advanced/#!
+
+def coins(values, sum)
+ min = Array.new(sum + 1, Float::INFINITY)
+ min[0] = 0
+
+ for i in (0..sum)
+ for j in (0..(values.size - 1))
+ break if values[j] > i
+ coin = values[j]
+
+ if min[i - coin] + 1 < min[i]
+ min[i] = min[i - coin] + 1
+ end
+ end
+ end
+ min.last
+end
+
+PP.pp coins([1, 3, 5], 11)