]> www.fi.muni.cz Git - aoc2021.git/blobdiff - 08.pl
Day 4: finally regexes!!!
[aoc2021.git] / 08.pl
diff --git a/08.pl b/08.pl
new file mode 100755 (executable)
index 0000000..d1f74b4
--- /dev/null
+++ b/08.pl
@@ -0,0 +1,33 @@
+#!/usr/bin/perl -w
+
+use v5.16;
+
+my @drawn = split/[,\s]/, scalar <>;
+scalar <>;
+
+$/ = "\n\n";
+
+my @boards = <>;
+
+say $boards[0];
+
+my $remaining = @boards;
+
+for my $d (@drawn) {
+       for my $board (@boards) {
+               $board =~ s/\b$d\b/' ' x length $d/e;
+               if ($board =~ /              /
+                       || $board =~ /\s{3}.{12}\s{3}.{12}\s{3}.{12}\s{3}.{12}\s{3}/xms) {
+                       if (--$remaining) {
+                               $board = 'x';
+                               next;
+                       }
+                       say $board;
+                       $board =~ s/(?<=\d)\s+(?=\d)/+/gxms;
+                       say "$board";
+                       say eval "$d*($board)";
+                       exit;
+               }
+       }
+}
+