diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2023-05-16 11:58:58 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-16 11:58:58 +0100 |
| commit | c70bed27c576d4c782ab62e8df3cd8fe79492c16 (patch) | |
| tree | d06d06da65c44db3953d27711bdffb382b45562c | |
| parent | 9244d228f73b1f3b27c7788df8ed96876e1b8ae7 (diff) | |
| parent | d0c703c0dd9021e733aa94281a4c9c3c85e1e6d0 (diff) | |
| download | perlweeklychallenge-club-c70bed27c576d4c782ab62e8df3cd8fe79492c16.tar.gz perlweeklychallenge-club-c70bed27c576d4c782ab62e8df3cd8fe79492c16.tar.bz2 perlweeklychallenge-club-c70bed27c576d4c782ab62e8df3cd8fe79492c16.zip | |
Merge pull request #8083 from wlmb/challenges
Solve PWC217
| -rw-r--r-- | challenge-217/wlmb/blog.txt | 2 | ||||
| -rwxr-xr-x | challenge-217/wlmb/perl/ch-1.pl | 27 | ||||
| -rwxr-xr-x | challenge-217/wlmb/perl/ch-2.pl | 14 |
3 files changed, 43 insertions, 0 deletions
diff --git a/challenge-217/wlmb/blog.txt b/challenge-217/wlmb/blog.txt new file mode 100644 index 0000000000..79ddfd8646 --- /dev/null +++ b/challenge-217/wlmb/blog.txt @@ -0,0 +1,2 @@ +https://wlmb.github.io/2023/05/15/PWC217/ + diff --git a/challenge-217/wlmb/perl/ch-1.pl b/challenge-217/wlmb/perl/ch-1.pl new file mode 100755 index 0000000000..c7e443f74d --- /dev/null +++ b/challenge-217/wlmb/perl/ch-1.pl @@ -0,0 +1,27 @@ +#!/usr/bin/env perl +# Perl weekly challenge 217 +# Task 1: Sorted Matrix +# +# See https://wlmb.github.io/2023/05/15/PWC217/#task-1-sorted-matrix +use v5.36; +use PDL; +use experimental "try"; +die <<~"FIN" unless @ARGV; + Usage: $0 '[[m11, m22, ...],[m21,m22,...],...]' + to find the third element of the sorted matrix elements mij. + FIN +for(@ARGV){ + try { + my $x=pdl($_); # Convert input string to pdl-ndarray + die "Expected a square matrix: $_" + unless $x->isa("PDL") and $x->dims==2 and $x->dim(0)==$x->dim(1); + my $result=$x + ->flat # convert to vector + ->qsort # sort its elements + ->at(2); # choose third smallest + say "$x->$result"; + } + catch($e){ + warn "$e"; + } +} diff --git a/challenge-217/wlmb/perl/ch-2.pl b/challenge-217/wlmb/perl/ch-2.pl new file mode 100755 index 0000000000..c9c2013dfa --- /dev/null +++ b/challenge-217/wlmb/perl/ch-2.pl @@ -0,0 +1,14 @@ +#!/usr/bin/env perl +# Perl weekly challenge 217 +# Task 2: Max Number +# +# See https://wlmb.github.io/2023/05/15/PWC217/#task-2-max-number +use v5.36; +use List::Util qw(all); +die <<~"FIN" unless @ARGV; + Usage: $0 N1 [N2...] + to build the highest possible number by rearranging and concatenating + the numbers N1 N2... + FIN +die "Expected nonnegative integers" unless all {/^\d+$/} @ARGV; +say "@ARGV -> ", join "", sort {"$b$a" <=> "$a$b"} @ARGV; |
