Something went wrong. Try again.
Code for the Advent of Code event
aoc advent-of-code
Something went wrong. Try again.
542 B · 25 lines
Ruby
at rust
1234567891011121314151617181920212223242526#!/usr/bin/env ruby# frozen_string_literal: true
# fucking whattrib_cache = [0, 1, 1]trib = ->(n) { trib_cache[n] ||= trib[n - 1] + trib[n - 2] + trib[n - 3]}
adapters = ARGF.readlines.map(&:to_i).sortDEVICE = adapters.max + 3
diffs = Hash.new 0diffs[adapters.min - 0] += 1diffs[3] += 1
adapters.each_cons(2) do |low, high| diffs[high - low] += 1end
puts diffs[1] * diffs[3]
puts ([0] + adapters + [DEVICE]).each_cons(2).reduce([1]) { |a, (f, l)| l - f == 1 ? a.tap { a[a.size - 1] += 1 } : a << 1}.map(&trib).reduce(:*)