aboutsummaryrefslogtreecommitdiff
path: root/day14/part2
diff options
context:
space:
mode:
Diffstat (limited to 'day14/part2')
-rwxr-xr-xday14/part232
1 files changed, 32 insertions, 0 deletions
diff --git a/day14/part2 b/day14/part2
new file mode 100755
index 0000000..9a2c9f3
--- /dev/null
+++ b/day14/part2
@@ -0,0 +1,32 @@
+#!/usr/bin/env ruby
+
+input = $stdin.readlines[0].strip.chars.map(&:to_i)
+ilen = input.length
+
+scores = [3, 7]
+elf1 = 0
+elf2 = 1
+
+loop do
+ se1 = scores[elf1]
+ se2 = scores[elf2]
+
+ sum = se1 + se2
+ scores += sum.to_s.chars.map(&:to_i)
+
+ slen = scores.length
+
+ elf1 = (elf1 + 1 + se1) % slen
+ elf2 = (elf2 + 1 + se2) % slen
+
+ m1 = scores[-ilen..-1]
+ m2 = scores[-ilen-1..-2]
+
+ if m1 == input then
+ puts slen - ilen
+ break
+ elsif m2 == input then
+ puts slen - ilen - 1
+ break
+ end
+end