aboutsummaryrefslogtreecommitdiff
path: root/rb/day17.rb
diff options
context:
space:
mode:
authorNat Lasseter <user@4574.co.uk>2024-11-07 22:27:13 +0000
committerNat Lasseter <user@4574.co.uk>2024-11-07 22:27:13 +0000
commit7d86157dfe52a76e03694be4592e32d9dec69ed9 (patch)
tree2e322463a0c5a15c09a78954334753d374316e31 /rb/day17.rb
parentd7d62da5e9c2ca991885641e0a55c2907eb0fb7e (diff)
Do a bunch more in rubyHEADmaster
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}"