2021-01
parent
6edb6c99f1
commit
703990eedc
|
@ -0,0 +1,14 @@
|
||||||
|
package part1;
|
||||||
|
|
||||||
|
use 5.34.0;
|
||||||
|
use warnings;
|
||||||
|
|
||||||
|
use experimental 'signatures';
|
||||||
|
|
||||||
|
use List::AllUtils qw/ sum /;
|
||||||
|
|
||||||
|
sub solution(@list) {
|
||||||
|
return sum map { $list[$_] > $list[$_-1] } 1..$#list;
|
||||||
|
}
|
||||||
|
|
||||||
|
1;
|
|
@ -0,0 +1,17 @@
|
||||||
|
package part2;
|
||||||
|
|
||||||
|
use 5.34.0;
|
||||||
|
use warnings;
|
||||||
|
use experimental 'signatures';
|
||||||
|
|
||||||
|
use List::AllUtils qw/ sum /;
|
||||||
|
|
||||||
|
require './part1.pm';
|
||||||
|
|
||||||
|
sub solution(@list) {
|
||||||
|
return part1::solution(
|
||||||
|
map { my $i = $_; sum map { $list[$i+$_] } 0..2 } 0..$#list-2
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
1;
|
|
@ -0,0 +1,19 @@
|
||||||
|
use 5.34.0;
|
||||||
|
|
||||||
|
use Test2::V0;
|
||||||
|
use Path::Tiny;
|
||||||
|
|
||||||
|
require './part1.pm';
|
||||||
|
require './part2.pm';
|
||||||
|
|
||||||
|
my @list = path('./input')->lines;
|
||||||
|
|
||||||
|
subtest part1 => sub {
|
||||||
|
is part1::solution( @list ) => 1602;
|
||||||
|
};
|
||||||
|
|
||||||
|
subtest part2 => sub {
|
||||||
|
is part2::solution(@list) => 1633;
|
||||||
|
};
|
||||||
|
|
||||||
|
done_testing();
|
Loading…
Reference in New Issue