From ce062f7e616e4bc8a88fcf9bf4bc4328f9a46c36 Mon Sep 17 00:00:00 2001 From: "Jan \"Yenya\" Kasprzak" Date: Fri, 10 Nov 2023 16:15:17 +0100 Subject: [PATCH] 2019 day 16 solutions --- 2019/31.pl | 24 ++++++++++++++++++++++++ 2019/32.pl | 17 +++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100755 2019/31.pl create mode 100755 2019/32.pl diff --git a/2019/31.pl b/2019/31.pl new file mode 100755 index 0000000..bd8e57c --- /dev/null +++ b/2019/31.pl @@ -0,0 +1,24 @@ +#!/usr/bin/perl -w + +use v5.16; + +my @sig = split //, <>; +pop @sig; + +my @mul = qw(0 1 0 -1); +for my $step (1 .. 100) { + my @sig1; + for my $i (1 .. @sig) { + my $sum; + my @m = map { ($_) x $i } @mul; + push @m, shift @m; + # say "$i: mul = ", join(',', @m); + $sum += $sig[$_] * $m[$_ % @m] for 0 .. $#sig; + $sum =~ s/.*(.)$/$1/; + push @sig1, $sum; + } + @sig = @sig1; + say "step $step: ", @sig[0 .. 7]; +} + + diff --git a/2019/32.pl b/2019/32.pl new file mode 100755 index 0000000..5600cfc --- /dev/null +++ b/2019/32.pl @@ -0,0 +1,17 @@ +#!/usr/bin/perl -w + +use v5.16; + +my @sig = split //, <>; +pop @sig; +@sig = (@sig) x 10_000; + +my $off = join('', @sig[0..6]); +say "off=$off"; +my @mul = qw(0 1 0 -1); +for my $step (1 .. 100) { + for my $i (reverse ($off .. $#sig-1)) { + $sig[$i] = ($sig[$i] + $sig[$i+1]) % 10; + } + say "step $step: ", @sig[$off .. $off + 7]; +} -- 2.43.0