aboutsummaryrefslogtreecommitdiff
path: root/rb/day17.rb
diff options
context:
space:
mode:
Diffstat (limited to 'rb/day17.rb')
-rwxr-xr-xrb/day17.rb21
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}"