aboutsummaryrefslogtreecommitdiff
path: root/challenge-242
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2023-11-12 23:35:01 +0000
committerGitHub <noreply@github.com>2023-11-12 23:35:01 +0000
commit3cd69c12f652f3d2a71126508b4cf8d1c6f6e535 (patch)
treea83cdf221a34b03183e86eb64b24a45faac2978f /challenge-242
parent361b1d5d59c9ef4a056d53e6e15ae50abd4765c6 (diff)
parent8307a9efe726b46b3548530bbdb9482312204623 (diff)
downloadperlweeklychallenge-club-3cd69c12f652f3d2a71126508b4cf8d1c6f6e535.tar.gz
perlweeklychallenge-club-3cd69c12f652f3d2a71126508b4cf8d1c6f6e535.tar.bz2
perlweeklychallenge-club-3cd69c12f652f3d2a71126508b4cf8d1c6f6e535.zip
Merge pull request #9046 from E7-87-83/newt
Week 242
Diffstat (limited to 'challenge-242')
-rw-r--r--challenge-242/cheok-yin-fung/perl/ch-1.pl41
-rw-r--r--challenge-242/cheok-yin-fung/perl/ch-2.pl22
2 files changed, 63 insertions, 0 deletions
diff --git a/challenge-242/cheok-yin-fung/perl/ch-1.pl b/challenge-242/cheok-yin-fung/perl/ch-1.pl
new file mode 100644
index 0000000000..a853b92138
--- /dev/null
+++ b/challenge-242/cheok-yin-fung/perl/ch-1.pl
@@ -0,0 +1,41 @@
+# The Weekly Challenge 242
+# Task 1 Missing Members
+use v5.30.0;
+use warnings;
+use List::Util qw/uniqint/;
+
+sub mm {
+ my @arr1 = $_[0]->@*;
+ my @arr2 = $_[1]->@*;
+ my @brr1 = uniqint @arr1;
+ my @brr2 = uniqint @arr2;
+ my @commons;
+ for my $e1 (@brr1) {
+ for my $e2 (@brr2) {
+ push @commons, $e1 if $e1 == $e2;
+ }
+ }
+ @commons = uniqint @commons;
+ # @commons = sort {$a<=>$b} @commons;
+ # @brr1 = sort {$a<=>$b} @brr1;
+ # @brr2 = sort {$a<=>$b} @brr2;
+ return [
+ [grep {!contains([@commons], $_)} @brr1],
+ [grep {!contains([@commons], $_)} @brr2],
+ ];
+}
+
+sub contains {
+ my @arr = $_[0]->@*;
+ my $i = $_[1];
+ for (@arr) {
+ return 1 if $_ == $i;
+ }
+ return 0;
+}
+
+use Data::Printer;
+my $ex1 = mm([1,2,3], [2,4,6]);
+p $ex1;
+my $ex2 = mm([1,2,3,3], [1,1,2,2]);
+p $ex2;
diff --git a/challenge-242/cheok-yin-fung/perl/ch-2.pl b/challenge-242/cheok-yin-fung/perl/ch-2.pl
new file mode 100644
index 0000000000..d9a30085a4
--- /dev/null
+++ b/challenge-242/cheok-yin-fung/perl/ch-2.pl
@@ -0,0 +1,22 @@
+# The Weekly Challenge 242
+# Task 2 Flip Matrix
+use v5.30.0;
+use warnings;
+
+sub fm {
+ my @matrix = @_;
+ my $n = 1 + $#matrix;
+ my $n_matrix = [];
+ for my $i (0..$n-1) {
+ push $n_matrix->@*,
+ [map {0+!$_} reverse $matrix[$i]->@*];
+ }
+ return $n_matrix;
+}
+
+use Test::More tests=>2;
+use Test::Deep;
+cmp_deeply fm([1, 1, 0], [1, 0, 1], [0, 0, 0]),
+ [[1, 0, 0], [0, 1, 0], [1, 1, 1]];
+cmp_deeply fm([1, 1, 0, 0], [1, 0, 0, 1], [0, 1, 1, 1], [1, 0, 1, 0]),
+ [[1, 1, 0, 0], [0, 1, 1, 0], [0, 0, 0, 1], [1, 0, 1, 0]];