AoC2021/day02/solution.rb

37 lines
515 B
Ruby

#!/bin/env ruby
commands = File.readlines('./input').map(&:split).map { [_1.to_sym, _2.to_i] }
# Part 1
dist = 0
depth = 0
commands.each do |command, unit|
case command
when :forward
dist += unit
when :down
depth += unit
when :up
depth -= unit
end
end
p dist * depth
# Part 2
dist = 0
depth = 0
aim = 0
commands.each do |command, unit|
case command
when :forward
depth += aim * unit
dist += unit
when :down
aim += unit
when :up
aim -= unit
end
end
p dist * depth