diff options
Diffstat (limited to 'rb/day17.rb')
-rwxr-xr-x | rb/day17.rb | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/rb/day17.rb b/rb/day17.rb new file mode 100755 index 0000000..e47768a --- /dev/null +++ b/rb/day17.rb @@ -0,0 +1,21 @@ +#!/usr/bin/env ruby + +STORE = 150 + +jugs = File.readlines("day17.input").map(&:to_i) + +numsols = 0 +(1..jugs.length).each do |i| + numsols += jugs.combination(i).map(&:sum).count(STORE) +end + +puts "Part 1: #{numsols}" + +minjugs = jugs.length + 1 +(1..jugs.length).each do |i| + min = jugs.combination(i).select { |s| s.sum == STORE }.map(&:length).min + minjugs = min if min && min < minjugs +end + +numsols = jugs.combination(minjugs).map(&:sum).count(STORE) +puts "Part 2: #{numsols}" |