aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-04-09 10:54:11 +0100
committerGitHub <noreply@github.com>2024-04-09 10:54:11 +0100
commita8294cef14c53f3ffb6badf8217d7bb51e39c0a1 (patch)
treeaba948f81dbfad093c1ae409c7438fb55344a132
parent05ee1469570a89f7be61de240eac030a9e924be7 (diff)
parente6615e139a69e937120e61f9641dbda03e08d50c (diff)
downloadperlweeklychallenge-club-a8294cef14c53f3ffb6badf8217d7bb51e39c0a1.tar.gz
perlweeklychallenge-club-a8294cef14c53f3ffb6badf8217d7bb51e39c0a1.tar.bz2
perlweeklychallenge-club-a8294cef14c53f3ffb6badf8217d7bb51e39c0a1.zip
Merge pull request #9901 from PerlBoy1967/branch-for-challenge-263
w263 - Task 1 & 2 (oops forgotten to push)
-rwxr-xr-xchallenge-263/perlboy1967/perl/ch1.pl36
-rwxr-xr-xchallenge-263/perlboy1967/perl/ch2.pl47
2 files changed, 83 insertions, 0 deletions
diff --git a/challenge-263/perlboy1967/perl/ch1.pl b/challenge-263/perlboy1967/perl/ch1.pl
new file mode 100755
index 0000000000..9485b28647
--- /dev/null
+++ b/challenge-263/perlboy1967/perl/ch1.pl
@@ -0,0 +1,36 @@
+#!/bin/perl
+
+=pod
+
+The Weekly Challenge - 263
+- https://theweeklychallenge.org/blog/perl-weekly-challenge-263
+
+Author: Niels 'PerlBoy' van Dijke
+
+Task 1: Max Positive Negative
+Submitted by: Mohammad Sajid Anwar
+
+You are given an array of integers, @ints.
+
+Write a script to return the maximum number of either positive or
+negative integers in the given array.
+
+=cut
+
+use v5.32;
+use feature qw(signatures);
+use common::sense;
+
+use Test2::V0;
+
+use List::AllUtils qw(indexes);
+
+sub targetIndex ($k,@ints) {
+ indexes { $_ == $k } sort { $a <=> $b } @ints;
+}
+
+is([targetIndex(2,1,5,3,2,4,2)],[1,2]);
+is([targetIndex(6,1,2,3,4,5)],[]);
+is([targetIndex(4,5,3,2,4,2,1)],[4]);
+
+done_testing;
diff --git a/challenge-263/perlboy1967/perl/ch2.pl b/challenge-263/perlboy1967/perl/ch2.pl
new file mode 100755
index 0000000000..faa8203742
--- /dev/null
+++ b/challenge-263/perlboy1967/perl/ch2.pl
@@ -0,0 +1,47 @@
+#!/bin/perl
+
+=pod
+
+The Weekly Challenge - 263
+- https://theweeklychallenge.org/blog/perl-weekly-challenge-263
+
+Author: Niels 'PerlBoy' van Dijke
+
+Task 2: Count Equal Divisible
+Submitted by: Mohammad Sajid Anwar
+
+You are given an array of integers, @ints and an integer $k.
+
+Write a script to return the number of pairs (i, j) where
+
+a) 0 <= i < j < size of @ints
+b) ints[i] == ints[j]
+c) i x j is divisible by k
+
+=cut
+
+use v5.32;
+use feature qw(signatures);
+use common::sense;
+
+use Test2::V0;
+
+sub mergeItems ($arItems1,$arItems2) {
+ my %o;
+ for (@$arItems1,@$arItems2) {
+ $o{$_->[0]} += $_->[1];
+ }
+ map { [$_,$o{$_}] } sort { $a <=> $b } keys %o;
+}
+
+is([mergeItems([[1,1],[2,1],[3,2]],
+ [[2,2],[1,3]])],
+ [[1,4],[2,3],[3,2]]);
+is([mergeItems([[1,2],[2,3],[1,3],[3,2]],
+ [[3,1],[1,3]])],
+ [[1,8],[2,3],[3,3]]);
+is([mergeItems([[1,1],[2,2],[3,3] ],
+ [[2,3],[2,4]])],
+ [[1,1],[2,9],[3,3]]);
+
+done_testing;