From: Jan "Yenya" Kasprzak Date: Thu, 19 Dec 2024 07:19:25 +0000 (+0100) Subject: Day 19: regex for part1, cached recursion for part 2 X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=3c9919e728dfe8649301d19d874b7b5675247678;p=aoc.git Day 19: regex for part1, cached recursion for part 2 --- diff --git a/2024/37.pl b/2024/37.pl new file mode 100755 index 0000000..420dbd7 --- /dev/null +++ b/2024/37.pl @@ -0,0 +1,10 @@ +#!/usr/bin/perl -w + +use v5.40; + +chomp($_ = <>); +my $re = s/, /|/gr; +my $sum; +$sum += /^($re)+$/ while <>; +say $sum; + diff --git a/2024/38.pl b/2024/38.pl new file mode 100755 index 0000000..f79a572 --- /dev/null +++ b/2024/38.pl @@ -0,0 +1,26 @@ +#!/usr/bin/perl -w + +use v5.40; + +my @towels = <> =~ /\w+/g; +$_ = <>; + +my %seen; +sub walk($rest) { + return 1 if !$rest; + return $seen{$rest} if exists $seen{$rest}; + my $count = 0; + for my $t (@towels) { + next if (my $r1 = $rest) !~ s/^$t//; + $count += walk($r1); + } + return $seen{$rest} = $count; +} + +my $sum; +while (<>) { + chomp; + $sum += walk($_); +} +say $sum; +