]> www.fi.muni.cz Git - aoc.git/commitdiff
Day 09: use reverse() for Part 2. D'oh!
authorJan "Yenya" Kasprzak <kas@fi.muni.cz>
Sat, 9 Dec 2023 09:12:39 +0000 (10:12 +0100)
committerJan "Yenya" Kasprzak <kas@fi.muni.cz>
Sat, 9 Dec 2023 09:12:39 +0000 (10:12 +0100)
2023/18.pl

index f41b7b1ed52f85f599398fa708eb45ca46b625d1..1ea75534d67e350795caff93b03a51897714a5ed 100755 (executable)
@@ -1,23 +1,19 @@
 #!/usr/bin/perl -w
 
 use v5.38;
+use List::Util qw(sum);
 
 my $sum;
 while (<>) {
-       my @seq = /-?\d+/g;
+       my @seq = reverse /-?\d+/g;
        my @rest;
        while (grep $_, @seq) {
-               push @rest, $seq[0];
                for my $i (0 .. $#seq-1) {
                        $seq[$i] = $seq[$i+1]-$seq[$i];
                }
-               pop @seq;
+               push @rest, pop @seq;
        }
-       my $s = 0;
-       for (reverse @rest) {
-               $s = $_ - $s;
-       }
-       $sum += $s;
+       $sum += sum @rest;
 }
 
 say $sum;