From cb1283d990b253c564317ae2cdfcc11f3ec82c4b Mon Sep 17 00:00:00 2001 From: s00ner Date: Sat, 16 Jul 2022 14:10:44 -0400 Subject: [PATCH] Solved Day 10 --- day10/input | 1 + day10/input.testing | 1 + day10/solution.rb | 44 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 day10/input create mode 100644 day10/input.testing create mode 100644 day10/solution.rb diff --git a/day10/input b/day10/input new file mode 100644 index 0000000..13dcd63 --- /dev/null +++ b/day10/input @@ -0,0 +1 @@ +3113322113 diff --git a/day10/input.testing b/day10/input.testing new file mode 100644 index 0000000..56a6051 --- /dev/null +++ b/day10/input.testing @@ -0,0 +1 @@ +1 \ No newline at end of file diff --git a/day10/solution.rb b/day10/solution.rb new file mode 100644 index 0000000..b8f30ac --- /dev/null +++ b/day10/solution.rb @@ -0,0 +1,44 @@ +#!/bin/env ruby +require 'pry' + +input = File.read('./input').strip + +# BADBADBAD takes sooooooo long at big numbers +# def look_and_say(sequence) +# sequence += 'E' +# result = '' +# sequence.chars.each_with_index do |num, i| +# next if result[-1] == num or num == 'E' +# n = i +# while sequence.chars[i..n].uniq.count == 1 +# n += 1 +# end +# result += (n - i).to_s +# result += num +# end +# result +# end + +# Stole this :( +def look_and_say(number) + result = '' + i = 0 + while i < number.length + c = number[i] + j = i + j += 1 while j < number.length && number[j] == c + result << "#{j - i}#{c}" + i = j + end + result +end + +# Change to 40 times for part 1 +sequences = [input] +50.times do |i| + puts "Run #{i} is #{sequences[-1].length}" + sequences.push(look_and_say(sequences[-1])) +end + +puts "Part 2 Solution: #{sequences[-1].length}" +# binding.pry