aboutsummaryrefslogtreecommitdiff
path: root/challenge-253
diff options
context:
space:
mode:
authorCY Fung <fungcheokyin@gmail.com>2024-01-28 20:47:04 +0800
committerCY Fung <fungcheokyin@gmail.com>2024-01-28 20:47:04 +0800
commit33dcd8be189e911df40a39fa97f481f02c06bd84 (patch)
tree969b91739d081abc0abcd3b5689c96a8011a11af /challenge-253
parent73704e823a01f00d461dac41dfae852471186d34 (diff)
downloadperlweeklychallenge-club-33dcd8be189e911df40a39fa97f481f02c06bd84.tar.gz
perlweeklychallenge-club-33dcd8be189e911df40a39fa97f481f02c06bd84.tar.bz2
perlweeklychallenge-club-33dcd8be189e911df40a39fa97f481f02c06bd84.zip
Week 253
Diffstat (limited to 'challenge-253')
-rw-r--r--challenge-253/cheok-yin-fung/perl/ch-1.pl18
-rw-r--r--challenge-253/cheok-yin-fung/perl/ch-2.pl31
2 files changed, 49 insertions, 0 deletions
diff --git a/challenge-253/cheok-yin-fung/perl/ch-1.pl b/challenge-253/cheok-yin-fung/perl/ch-1.pl
new file mode 100644
index 0000000000..6f3bd5ec43
--- /dev/null
+++ b/challenge-253/cheok-yin-fung/perl/ch-1.pl
@@ -0,0 +1,18 @@
+# The Weekly Challenge 253
+# Task 1 Split Strings
+use v5.30.0;
+use warnings;
+
+sub ss {
+ my @arr = $_[0]->@*;
+ my $sep = $_[1];
+ my $Sep = $sep;
+ $Sep =~ s/(\W)/\\$1/g;
+ my @new = grep {$_} split /$Sep/, join $sep, @arr;
+ return [@new];
+}
+
+use Test2::V0;
+is ss(["one.two.three","four.five","six"], "."), ["one", "two", "three", "four","five", "six"];
+is ss(['$perl$$', '$$raku$'], '$'), ["perl", "raku"];
+done_testing();
diff --git a/challenge-253/cheok-yin-fung/perl/ch-2.pl b/challenge-253/cheok-yin-fung/perl/ch-2.pl
new file mode 100644
index 0000000000..b3afab1541
--- /dev/null
+++ b/challenge-253/cheok-yin-fung/perl/ch-2.pl
@@ -0,0 +1,31 @@
+# The Weekly Challenge 253
+# Task 2 Weakest Row
+use v5.30.0;
+use warnings;
+
+sub wr {
+ my $matrix = $_[0];
+ my @rows = $matrix->@*;
+ my @weight = map {scalar grep {$_} $_->@*} @rows;
+ my @ord = sort {$weight[$a] <=> $weight[$b] || $a<=>$b} 0..$#rows;
+ return [@ord];
+}
+
+use Test2::V0;
+is wr([
+ [1, 1, 0, 0, 0],
+ [1, 1, 1, 1, 0],
+ [1, 0, 0, 0, 0],
+ [1, 1, 0, 0, 0],
+ [1, 1, 1, 1, 1]
+ ]
+), [2,0,3,1,4];
+
+is wr([
+ [1, 0, 0, 0],
+ [1, 1, 1, 1],
+ [1, 0, 0, 0],
+ [1, 0, 0, 0]
+ ]
+), [0,2,3,1];
+done_testing();