You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
advent-of-code/2023/ruby/day_09.rb

27 lines
485 B

histories = ARGF.readlines.map { _1.scan(/-?\d+/).map(&:to_i) }
# part one
p histories
.map {|history|
diffs = [history]
until diffs.last.all?(&:zero?)
diffs << diffs.last.each_cons(2).map { _2 - _1 }
end
diffs.sum(&:last)
}
.sum
# part two
p histories
.map {|history|
diffs = [history]
until diffs.last.all?(&:zero?)
diffs << diffs.last.each_cons(2).map { _2 - _1 }
end
diffs.map(&:first).reverse.inject { _2 - _1 }
}
.sum