From: Jan "Yenya" Kasprzak Date: Wed, 3 Dec 2025 05:37:16 +0000 (+0100) Subject: Day 3: greedy algorithm with regexes X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=14fa074821d260605168260b7f149ea76c32e3f4;p=aoc.git Day 3: greedy algorithm with regexes --- diff --git a/2025/05.pl b/2025/05.pl new file mode 100755 index 0000000..e841b90 --- /dev/null +++ b/2025/05.pl @@ -0,0 +1,18 @@ +#!/usr/bin/perl -w + +use v5.42; + +my $sum; +ROW: +while (<>) { + for my $x (reverse 1 .. 9) { + for my $y (reverse 1 .. 9) { + if (/$x.*$y/) { + $sum += "$x$y"; + next ROW; + } + } + } +} + +say $sum; diff --git a/2025/06.pl b/2025/06.pl new file mode 100755 index 0000000..f2a5fde --- /dev/null +++ b/2025/06.pl @@ -0,0 +1,20 @@ +#!/usr/bin/perl -w + +use v5.42; +use List::Util qw(sum); + +my $len = 12; + +sub search { + my ($d, $str) = @_; + + return $str if length $str == $len; + + for my $n (reverse 1 .. 9) { + my $re = $n . ('.' x ($len - 1 - length $str)); + next if $d !~ /$re/; + return search($d =~ s/^.*?$n//r, "$str$n"); + } +} + +say sum map { chomp; search($_, '') } <>;