#!/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