aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuis Mochan <mochan@fis.unam.mx>2023-12-17 23:01:05 -0600
committerLuis Mochan <mochan@fis.unam.mx>2023-12-17 23:01:05 -0600
commitdc1854fdace1827f16f2d3dde1e403de2003ef38 (patch)
treeaa30a906f93c549bbffa72b5d133a9741c16d62a
parenta09beeb342d8937c474e7356b6c6dba565108065 (diff)
downloadperlweeklychallenge-club-dc1854fdace1827f16f2d3dde1e403de2003ef38.tar.gz
perlweeklychallenge-club-dc1854fdace1827f16f2d3dde1e403de2003ef38.tar.bz2
perlweeklychallenge-club-dc1854fdace1827f16f2d3dde1e403de2003ef38.zip
Solve PWC248
-rw-r--r--challenge-248/wlmb/blog.txt1
-rwxr-xr-xchallenge-248/wlmb/perl/ch-1.pl15
-rwxr-xr-xchallenge-248/wlmb/perl/ch-2.pl16
3 files changed, 32 insertions, 0 deletions
diff --git a/challenge-248/wlmb/blog.txt b/challenge-248/wlmb/blog.txt
new file mode 100644
index 0000000000..2638288046
--- /dev/null
+++ b/challenge-248/wlmb/blog.txt
@@ -0,0 +1 @@
+https://wlmb.github.io/2023/12/17/PWC248/
diff --git a/challenge-248/wlmb/perl/ch-1.pl b/challenge-248/wlmb/perl/ch-1.pl
new file mode 100755
index 0000000000..14c9ab3c0e
--- /dev/null
+++ b/challenge-248/wlmb/perl/ch-1.pl
@@ -0,0 +1,15 @@
+#!/usr/bin/env perl
+# Perl weekly challenge 248
+# Task 1: Shortest Distance
+#
+# See https://wlmb.github.io/2023/12/17/PWC248/#task-1-shortest-distance
+use v5.36;
+use PDL;
+die <<~"FIN" unless @ARGV==2;
+ Usage: $0 string letter
+ to obtain the shortest distances.
+ FIN
+my @letters=split "", $ARGV[0];
+my $i=pdl(grep {$letters[$_] eq $ARGV[1]} 0..@letters-1);
+my $j=sequence(0+@letters);
+say "@ARGV; $ARGV[1] -> ", ($i->dummy(1)-$j->dummy(0))->abs->minover;
diff --git a/challenge-248/wlmb/perl/ch-2.pl b/challenge-248/wlmb/perl/ch-2.pl
new file mode 100755
index 0000000000..7d9022d2fd
--- /dev/null
+++ b/challenge-248/wlmb/perl/ch-2.pl
@@ -0,0 +1,16 @@
+#!/usr/bin/env perl
+# Perl weekly challenge 248
+# Task 2: Submatrix Sum
+#
+# See https://wlmb.github.io/2023/12/17/PWC248/#task-2-submatrix-sum
+use v5.36;
+use PDL;
+use PDL::NiceSlice;
+die <<~"FIN" unless @ARGV==1;
+ Usage: $0 M
+ to sum 2x2 the overlapped submatrices of matrix M
+ FIN
+my $m=pdl(shift);
+my $n=pdl($m(0:-2,0:-2),$m(1:-1,0:-2),$m(0:-2,1:-1),$m(1:-1,1:-1))
+ ->mv(-1,0)->sumover;
+say "$m->$n"