]> www.fi.muni.cz Git - aoc.git/blobdiff - 2022/06.pl
Day 3: use $_ everywhere
[aoc.git] / 2022 / 06.pl
index 31b1327f44ba95ee1a03e927caa4306c59e68d5a..39b07aefabaa8a95607ed36ff2857ced034b2a94 100755 (executable)
@@ -5,16 +5,15 @@ use strict;
 use experimental 'multidimensional';
 
 my $sum;
-chomp (my @bags = <>);
-
-while (my @a = splice(@bags, 0, 3)) {
-       for my $c (split(//, $a[0])) {
-               next if $a[1] !~ /$c/;
-               next if $a[2] !~ /$c/;
-               $sum += ord($c) - ord('A') + 27 if $c =~ /[A-Z]/;
-               $sum += ord($c) - ord('a') +  1 if $c =~ /[a-z]/;
-               say $c;
-               last;
-       }
+my $s;
+while (<>) {
+       $s .= $_;
+       next if $. % 3;
+       $_ = $s;
+       $s = '';
+       s/\A\S*(.)\S*\s\S*\1\S*\s\S*\1\S*\s?\z/$1/;
+       $sum += /[A-Z]/
+               ? ord() - ord('A') + 27
+               : ord() - ord('a') + 1; 
 }
 say $sum;