]> www.fi.muni.cz Git - aoc.git/commitdiff
Day 3: it took too long to write this.
authorJan "Yenya" Kasprzak <kas@fi.muni.cz>
Sat, 3 Dec 2022 05:13:57 +0000 (06:13 +0100)
committerJan "Yenya" Kasprzak <kas@fi.muni.cz>
Sat, 3 Dec 2022 05:13:57 +0000 (06:13 +0100)
2022/05.pl [new file with mode: 0755]
2022/06.pl [new file with mode: 0755]

diff --git a/2022/05.pl b/2022/05.pl
new file mode 100755 (executable)
index 0000000..1a78799
--- /dev/null
@@ -0,0 +1,20 @@
+#!/usr/bin/perl -w
+
+use v5.36;
+use strict;
+use experimental 'multidimensional';
+
+my $sum;
+while (<>) {
+       chomp;
+       my $len = length;
+       my ($l, $r) = (substr($_, 0, $len/2), substr($_, $len/2));
+       for my $c (split(//, $l)) {
+               next if $r !~ /$c/;
+               $sum += ord($c) - ord('A') + 27 if $c =~ /[A-Z]/;
+               $sum += ord($c) - ord('a') +  1 if $c =~ /[a-z]/;
+               say $c;
+               last;
+       }
+}
+say $sum;
diff --git a/2022/06.pl b/2022/06.pl
new file mode 100755 (executable)
index 0000000..31b1327
--- /dev/null
@@ -0,0 +1,20 @@
+#!/usr/bin/perl -w
+
+use v5.36;
+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;
+       }
+}
+say $sum;