]> www.fi.muni.cz Git - aoc.git/blobdiff - 2020/8.pl
Moved 2020 to a subdir
[aoc.git] / 2020 / 8.pl
diff --git a/2020/8.pl b/2020/8.pl
new file mode 100755 (executable)
index 0000000..c8e2a20
--- /dev/null
+++ b/2020/8.pl
@@ -0,0 +1,38 @@
+#!/usr/bin/perl -w
+
+use strict;
+
+$/ = "\n\n";
+
+my $valid = 0;
+while (<>) {
+       my $correct = 0;
+       for my $field (split /\s+/) {
+               print "$field";
+               $correct++
+                       if $field =~ /\Abyr:(\d{4})\z/
+                       && $1 >= 1920 && $1 <= 2002;
+               $correct++
+                       if $field =~ /\Aiyr:(\d{4})\z/
+                       && $1 >= 2010 && $1 <= 2020;
+               $correct++
+                       if $field =~ /\Aeyr:(\d{4})\z/
+                       && $1 >= 2020 && $1 <= 2030;
+               $correct++
+                       if $field =~ /\Ahgt:(\d+)(cm|in)\z/
+                       && ($2 eq 'cm' && $1 >= 150 && $1 <= 193
+                       || $2 eq 'in' && $1 >= 59 && $1 <= 76);
+               $correct++
+                       if $field =~ /\Ahcl:#[a-f0-9]{6}\z/;
+               $correct++
+                       if $field =~ /\Aecl:(?:amb|blu|brn|gry|grn|hzl|oth)\z/;
+               $correct++
+                       if $field =~ /\Apid:(?:\d{9})\z/;
+               print "\t$correct\n";
+       }
+       $valid++ if $correct >= 7;
+       print "\n";
+}
+
+print "Valid: $valid\n";
+