From 67d468a613bd6e20b2e9607f350bc0878e2ae8d8 Mon Sep 17 00:00:00 2001 From: Nat Lasseter Date: Wed, 5 Dec 2018 10:38:42 +0000 Subject: [day05] made it fast with barrucadu's suggestion --- day05/part1 | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) (limited to 'day05/part1') diff --git a/day05/part1 b/day05/part1 index 4761380..9fe581d 100755 --- a/day05/part1 +++ b/day05/part1 @@ -2,26 +2,21 @@ input = gets.chomp.chars -l = input.length -loop do - i = input.length - 1 - loop do - break if i < 1 +polymer = input +nextpolymer = Array.new(polymer.length) +nextpolymer[0] = polymer[0] +index = 1 +nextindex = 0 - if input[i] == input[i-1].swapcase - input[i] = nil - input[i-1] = nil - i -= 2 - else - i -= 1 - end - end - input = input.compact - if input.length == l - break +while index < polymer.length do + if polymer[index].swapcase != nextpolymer[nextindex] + nextindex += 1 + nextpolymer[nextindex] = polymer[index] else - l = input.length + nextpolymer[nextindex] = nil + nextindex -= 1 end + index += 1 end -puts input.length +puts nextpolymer.compact.length -- cgit v1.2.3