diff --git a/day_03/1.rb b/day_03/1.rb new file mode 100755 index 0000000..bd16fdb --- /dev/null +++ b/day_03/1.rb @@ -0,0 +1,19 @@ +#!/usr/bin/env ruby +# frozen_string_literal: true + +class Main + def run + @sum = 0 + + $stdin.each_line do |line| + nums = line.chomp.each_char.map(&:to_i) + first_digit = nums[0..-2].sort.reverse[0] + second_digit = nums[nums.find_index(first_digit) + 1..].sort.reverse[0] + @sum += "#{first_digit}#{second_digit}".to_i + end + + puts @sum + end +end + +Main.new.run diff --git a/day_03/2.rb b/day_03/2.rb new file mode 100755 index 0000000..486041a --- /dev/null +++ b/day_03/2.rb @@ -0,0 +1,27 @@ +#!/usr/bin/env ruby +# frozen_string_literal: true + +class Main + def run + @sum = 0 + + $stdin.each_line do |line| + nums = line.chomp.each_char.map(&:to_i) + largest_joltage = recurse(12, nums, []) + @sum += largest_joltage.join.to_i + end + + puts @sum + end + + def recurse(i, nums, largest_joltage) + return largest_joltage if i == 0 + + max = nums[..-i].max + largest_joltage << max + + recurse(i - 1, nums[nums.find_index(max) + 1..], largest_joltage) + end +end + +Main.new.run