From 14fa074821d260605168260b7f149ea76c32e3f4 Mon Sep 17 00:00:00 2001 From: "Jan \"Yenya\" Kasprzak" Date: Wed, 3 Dec 2025 06:37:16 +0100 Subject: [PATCH] Day 3: greedy algorithm with regexes --- 2025/05.pl | 18 ++++++++++++++++++ 2025/06.pl | 20 ++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100755 2025/05.pl create mode 100755 2025/06.pl 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($_, '') } <>; -- 2.47.3