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.
27 lines
485 B
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
|
|
|