From cd5acc649c31f299f16ec1e205a752e19b908bc5 Mon Sep 17 00:00:00 2001 From: Nat Lasseter Date: Wed, 5 Dec 2018 10:08:04 +0000 Subject: [day05] done, naïve and slow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- day05/part2 | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100755 day05/part2 (limited to 'day05/part2') diff --git a/day05/part2 b/day05/part2 new file mode 100755 index 0000000..b71d84e --- /dev/null +++ b/day05/part2 @@ -0,0 +1,34 @@ +#!/usr/bin/env ruby + +input = gets.chomp.chars + +units = input.map(&:downcase).uniq +lengths = {} + +units.each do |unit| + polymer = input.dup + polymer.delete_if {|u| u == unit || u == unit.upcase} + l = polymer.length + loop do + i = polymer.length - 1 + loop do + break if i < 1 + + if polymer[i] == polymer[i-1].swapcase + polymer.delete_at(i) + polymer.delete_at(i-1) + i -= 2 + else + i -= 1 + end + end + if polymer.length == l + break + else + l = polymer.length + end + end + lengths[unit] = polymer.length +end + +puts lengths.values.min -- cgit v1.2.3