From 3c9919e728dfe8649301d19d874b7b5675247678 Mon Sep 17 00:00:00 2001 From: "Jan \"Yenya\" Kasprzak" Date: Thu, 19 Dec 2024 08:19:25 +0100 Subject: [PATCH] Day 19: regex for part1, cached recursion for part 2 --- 2024/37.pl | 10 ++++++++++ 2024/38.pl | 26 ++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100755 2024/37.pl create mode 100755 2024/38.pl 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; + -- 2.43.5