aboutsummaryrefslogtreecommitdiff
path: root/day05/part1
diff options
context:
space:
mode:
Diffstat (limited to 'day05/part1')
-rwxr-xr-xday05/part131
1 files changed, 13 insertions, 18 deletions
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