]> www.fi.muni.cz Git - aoc.git/commitdiff
Day 5: more Perl-ish input parsing
authorJan "Yenya" Kasprzak <kas@fi.muni.cz>
Mon, 5 Dec 2022 18:39:01 +0000 (19:39 +0100)
committerJan "Yenya" Kasprzak <kas@fi.muni.cz>
Mon, 5 Dec 2022 18:39:01 +0000 (19:39 +0100)
2022/09.pl
2022/10.pl

index ef96b5235c714fdf6d160681bdd7f89178f6ce46..ecc372884e2cc8bcdba0be322920ddb2fe95c3e6 100755 (executable)
@@ -8,17 +8,15 @@ my @stacks;
 
 while (<>) {
        last if /^ \d/;
-       my $i = 1;
-       my $st = 0;
-       $stacks[$st] //= [];
-       while ($i < length) {
-               my $c = substr($_, $i, 1);
-               unshift @{ $stacks[$st] }, $c if $c =~ /[A-Z]/;
-               $i += 4;
-               $st++;
+       my $i = 0;
+       for (/.(.). ?/g) {
+               unshift @{ $stacks[$i] }, $_ if /[A-Z]/;
+               $i++;
        }
 }
 
+use Data::Dumper;
+print Dumper \@stacks;
 scalar <>;
 
 while (<>) {
index 913e078d860582ba3385330017e9e296b7ab438d..0dcf15f87c1d13ea6350b300118f09517a539408 100755 (executable)
@@ -8,14 +8,10 @@ my @stacks;
 
 while (<>) {
        last if /^ \d/;
-       my $i = 1;
-       my $st = 0;
-       $stacks[$st] //= [];
-       while ($i < length) {
-               my $c = substr($_, $i, 1);
-               unshift @{ $stacks[$st] }, $c if $c =~ /[A-Z]/;
-               $i += 4;
-               $st++;
+       my $i = 0;
+        for (/.(.). ?/g) {
+               unshift @{ $stacks[$i] }, $_ if /[A-Z]/;
+               $i++;
        }
 }