28 lines
468 B
Perl
28 lines
468 B
Perl
package part2;
|
|
|
|
use 5.34.0;
|
|
|
|
use experimental qw/ signatures switch/;
|
|
|
|
sub solution(@lines) {
|
|
my( $depth, $aim, $x );
|
|
|
|
for my $line ( @lines ) {
|
|
my( $action, $value ) = split ' ', $line;
|
|
|
|
given($action) {
|
|
$aim+=$value when 'down';
|
|
$aim-=$value when 'up';
|
|
when( 'forward' ) {
|
|
$x += $value;
|
|
$depth += $aim * $value;
|
|
}
|
|
}
|
|
}
|
|
|
|
return $x * $depth;
|
|
|
|
}
|
|
|
|
1;
|