Code for the Advent of Code event
aoc advent-of-code
at rust 24 lines 453 B view raw
1#!/usr/bin/env ruby 2# frozen_string_literal: true 3 4RANGES = ARGF.readlines.to_h { |l| l.split.map(&:to_i) } 5MAX_DEPTH = RANGES.keys.max 6 7def walk(delay) 8 severity = 0 9 caught = false 10 11 (0..MAX_DEPTH).each do |depth| 12 range = RANGES[depth] 13 next if range.nil? || (depth + delay) % ((range * 2) - 2) != 0 14 severity += depth * range 15 caught = true 16 end 17 18 [caught, severity] 19end 20 21_, s = walk(0) 22puts s 23 24puts (10..).find { |d| !walk(d)[0] }