From 6734e8dee0ff45229100bfbed9935ce080639981 Mon Sep 17 00:00:00 2001 From: Nat Lasseter Date: Wed, 21 Dec 2022 15:19:10 +0000 Subject: Day 21 --- day21/part1.rb | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 day21/part1.rb (limited to 'day21/part1.rb') diff --git a/day21/part1.rb b/day21/part1.rb new file mode 100644 index 0000000..4895237 --- /dev/null +++ b/day21/part1.rb @@ -0,0 +1,34 @@ +monkeys = $stdin.readlines + +nums = {} + +monkeys.count.times do |mix| + if monkeys[mix] =~ /(\d+)/ + val = $1.to_i + nums[monkeys[mix][0...4]] = $1.to_i + monkeys[mix] = nil + end +end +monkeys.compact! + +while nums["root"].nil? + monkeys.count.times do |mix| + f, a, b = monkeys[mix].scan(/[a-z]{4}/) + unless nums[a].nil? || nums[b].nil? + case monkeys[mix][11] + when ?+ + nums[f] = nums[a] + nums [b] + when ?- + nums[f] = nums[a] - nums [b] + when ?* + nums[f] = nums[a] * nums [b] + when ?/ + nums[f] = nums[a] / nums [b] + end + monkeys[mix] = nil + end + end + monkeys.compact! +end + +puts nums["root"] -- cgit v1.2.1