Something went wrong. Try again.
Code for the Advent of Code event
aoc advent-of-code
Something went wrong. Try again.
453 B · 24 lines
Ruby
at rust
12345678910111213141516171819202122232425#!/usr/bin/env ruby# frozen_string_literal: true
RANGES = ARGF.readlines.to_h { |l| l.split.map(&:to_i) }MAX_DEPTH = RANGES.keys.max
def walk(delay) severity = 0 caught = false
(0..MAX_DEPTH).each do |depth| range = RANGES[depth] next if range.nil? || (depth + delay) % ((range * 2) - 2) != 0 severity += depth * range caught = true end
[caught, severity]end
_, s = walk(0)puts s
puts (10..).find { |d| !walk(d)[0] }