From 656976ee2da9d29fbb1cd7c2c3d015369acf2459 Mon Sep 17 00:00:00 2001 From: "Jan \"Yenya\" Kasprzak" Date: Sun, 7 Dec 2025 06:18:05 +0100 Subject: [PATCH] Day 07: beams --- 2025/13.pl | 23 +++++++++++++++++++++++ 2025/14.pl | 22 ++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100755 2025/13.pl create mode 100755 2025/14.pl diff --git a/2025/13.pl b/2025/13.pl new file mode 100755 index 0000000..615836c --- /dev/null +++ b/2025/13.pl @@ -0,0 +1,23 @@ +#!/usr/bin/perl -w + +use v5.42; + +my %beams; +($_ = <>) =~ /S/g; +$beams{pos()-1}++; + +my $splits; +while (<>) { + my %newb; + for my $b (keys %beams) { + if (substr($_, $b, 1) eq '^') { + $newb{$b-1}++ if $b > 0; + $newb{$b+1}++ if $b < length; + $splits++; + } else { + $newb{$b}++; + } + } + %beams = %newb; +} +say $splits; diff --git a/2025/14.pl b/2025/14.pl new file mode 100755 index 0000000..7648cb4 --- /dev/null +++ b/2025/14.pl @@ -0,0 +1,22 @@ +#!/usr/bin/perl -w + +use v5.42; +use List::Util qw(sum); + +my %beams; +($_ = <>) =~ /S/g; +$beams{pos()-1}++; + +while (<>) { + my %newb; + for my $b (keys %beams) { + if (substr($_, $b, 1) eq '^') { + $newb{$b-1} += $beams{$b} if $b > 0; + $newb{$b+1} += $beams{$b} if $b < length; + } else { + $newb{$b} += $beams{$b}; + } + } + %beams = %newb; +} +say sum values %beams; -- 2.47.3