#!/usr/bin/env ruby input = File.read("day12.input") puts "Part 1: #{input.scan(/-?\d+/).map(&:to_i).sum}" require 'json' json = JSON.parse(input) search = [json] sum = 0 until search.empty? this = search.shift case this when Numeric sum += this when Array search.push(*this) when Hash unless this.values.include?("red") search.push(*this.keys) search.push(*this.values) end end end puts "Part 2: #{sum}"