37 lines
515 B
Ruby
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
|