From 76af1b6d083b0b76ee56e06916648702a7b50df1 Mon Sep 17 00:00:00 2001 From: Alpha Chen Date: Sat, 19 Dec 2015 21:43:12 -0800 Subject: [PATCH] Day 19.1 --- ruby/day_19.rb | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/ruby/day_19.rb b/ruby/day_19.rb index a7d9db4..aeb9019 100644 --- a/ruby/day_19.rb +++ b/ruby/day_19.rb @@ -1,11 +1,14 @@ replacements, molecule = DATA.read.chomp.split("\n\n") -replacements = replacements.scan(/(\w+) \=> (\w+)/) -puts replacements.flat_map {|k,v| - m = molecule.split(k, -1) - (0...m.size-1).map {|i| - m[0..i].join(k) + v + m[i+1..-1].join(k) - } -}.uniq.size +replacements = replacements.scan(/(\w+) \=> (\w+)/).map(&:reverse).sort_by {|k,_| -k.size} + +steps = 0 +until molecule == ?e + k,v = replacements.find {|k,_| molecule.include?(k) } + steps += molecule.scan(/#{k}/).size + + molecule.gsub!(k, v) + puts "#{steps}: #{molecule}" +end __END__ Al => ThF Al => ThRnFAr