Day 9
This commit is contained in:
13
2023/day9/p1.rb
Normal file
13
2023/day9/p1.rb
Normal file
@@ -0,0 +1,13 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
inputs = []
|
||||
File.foreach('./2023/day9/data') do |line|
|
||||
inputs << line.split(' ').map(&:to_i)
|
||||
end
|
||||
|
||||
def add_derivative(inputs)
|
||||
return 0 if inputs.all?(&:zero?)
|
||||
inputs[-1] + add_derivative(inputs.map.with_index { |x, i| i.zero? ? x : x - inputs[i - 1] }[1..inputs.length])
|
||||
end
|
||||
|
||||
puts inputs.map { |input| add_derivative input }.sum
|
||||
11
2023/day9/p2.rb
Normal file
11
2023/day9/p2.rb
Normal file
@@ -0,0 +1,11 @@
|
||||
inputs = []
|
||||
File.foreach('./2023/day9/data') do |line|
|
||||
inputs << line.split(' ').map(&:to_i)
|
||||
end
|
||||
|
||||
def add_derivative(inputs)
|
||||
return 0 if inputs.all?(&:zero?)
|
||||
inputs[-1] - add_derivative(inputs.map.with_index { |x, i| i.zero? ? x : inputs[i - 1] - x }[1..inputs.length])
|
||||
end
|
||||
|
||||
puts inputs.map { |input| add_derivative input.reverse }.sum
|
||||
Reference in New Issue
Block a user