diff --git a/day3/day3b.pm b/day3/day3b.pm new file mode 100644 index 0000000..515305b --- /dev/null +++ b/day3/day3b.pm @@ -0,0 +1,28 @@ +use 5.20.0; +use experimental 'postderef'; + +use Array::Tour::Spiral; +use List::AllUtils qw/ sum /; + +my $num = shift; + +my $spiral = Array::Tour::Spiral->new( dimensions => $num ); + +my $grid = []; +my $first = 1; + +while ( my ($x,$y) = $spiral->next->@* ) { + if( $first) { + $grid->[$x][$y] = 1; + $first = 0; + } + else { + $grid->[$x][$y] = sum map { + my $i = $_; + map { $grid->[$x+$i][$y+$_] } -1..1 + } -1..1 + } + + warn $grid->[$x][$y]; + exit say $_ for grep { $_ > $num } $grid->[$x][$y]; +}