aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-02-20 14:00:07 +0000
committerGitHub <noreply@github.com>2024-02-20 14:00:07 +0000
commitf94b24598e19aa56932aeb273bd1c92ec58e7308 (patch)
treec3140e86c3eb9cc3989955b65137818e2dd5c56e
parent11cce4eba274267942d772f04f2982854cea331f (diff)
parenta3f5b96fc591798643dbee5454142a4f4065ac0b (diff)
downloadperlweeklychallenge-club-f94b24598e19aa56932aeb273bd1c92ec58e7308.tar.gz
perlweeklychallenge-club-f94b24598e19aa56932aeb273bd1c92ec58e7308.tar.bz2
perlweeklychallenge-club-f94b24598e19aa56932aeb273bd1c92ec58e7308.zip
Merge pull request #9612 from spadacciniweb/PWC-257
Add PWC-257 in Perl ch-1
-rw-r--r--challenge-257/spadacciniweb/go/ch-1.go62
-rw-r--r--challenge-257/spadacciniweb/perl/ch-1.pl59
2 files changed, 121 insertions, 0 deletions
diff --git a/challenge-257/spadacciniweb/go/ch-1.go b/challenge-257/spadacciniweb/go/ch-1.go
new file mode 100644
index 0000000000..8d6dee9dd7
--- /dev/null
+++ b/challenge-257/spadacciniweb/go/ch-1.go
@@ -0,0 +1,62 @@
+/*
+Task 1: Smaller than Current
+Submitted by: Mohammad Sajid Anwar
+
+You are given a array of integers, @ints.
+Write a script to find out how many integers are smaller than current i.e. foreach ints[i], count ints[j] < ints[i] where i != j.
+
+Example 1
+Input: @ints = (5, 2, 1, 6)
+Output: (2, 1, 0, 3)
+
+For $ints[0] = 5, there are two integers (2,1) smaller than 5.
+For $ints[1] = 2, there is one integer (1) smaller than 2.
+For $ints[2] = 1, there is none integer smaller than 1.
+For $ints[3] = 6, there are three integers (5,2,1) smaller than 6.
+
+Example 2
+Input: @ints = (1, 2, 0, 3)
+Output: (1, 2, 0, 3)
+
+Example 3
+Input: @ints = (0, 1)
+Output: (0, 1)
+
+Example 4
+Input: @ints = (9, 4, 9, 2)
+Output: (2, 1, 2, 0)
+*/
+
+package main
+
+import (
+ "fmt"
+)
+
+func smaller_than_current(arrInts []int) {
+ arrSmaller := make([]int, 0)
+ for i := 0; i < len(arrInts); i++ {
+ smaller := 0
+ for j := 0; j < len(arrInts); j++ {
+ if arrInts[j] < arrInts[i] {
+ smaller++
+ }
+ }
+ arrSmaller = append(arrSmaller, smaller)
+ }
+ fmt.Printf("%v -> %v\n", arrInts, arrSmaller)
+}
+
+func main() {
+ arrInts := []int{2, 1, 0, 3}
+ smaller_than_current(arrInts)
+
+ arrInts = []int{1, 2, 0, 3}
+ smaller_than_current(arrInts)
+
+ arrInts = []int{0, 1}
+ smaller_than_current(arrInts)
+
+ arrInts = []int{9, 4, 9, 2}
+ smaller_than_current(arrInts)
+}
diff --git a/challenge-257/spadacciniweb/perl/ch-1.pl b/challenge-257/spadacciniweb/perl/ch-1.pl
new file mode 100644
index 0000000000..6934c43d72
--- /dev/null
+++ b/challenge-257/spadacciniweb/perl/ch-1.pl
@@ -0,0 +1,59 @@
+#!/usr/bin/env perl
+
+# Task 1: Smaller than Current
+# Submitted by: Mohammad Sajid Anwar
+#
+# You are given a array of integers, @ints.
+# Write a script to find out how many integers are smaller than current i.e. foreach ints[i], count ints[j] < ints[i] where i != j.
+#
+# Example 1
+# Input: @ints = (5, 2, 1, 6)
+# Output: (2, 1, 0, 3)
+#
+# For $ints[0] = 5, there are two integers (2,1) smaller than 5.
+# For $ints[1] = 2, there is one integer (1) smaller than 2.
+# For $ints[2] = 1, there is none integer smaller than 1.
+# For $ints[3] = 6, there are three integers (5,2,1) smaller than 6.
+#
+# Example 2
+# Input: @ints = (1, 2, 0, 3)
+# Output: (1, 2, 0, 3)
+#
+# Example 3
+# Input: @ints = (0, 1)
+# Output: (0, 1)
+#
+# Example 4
+# Input: @ints = (9, 4, 9, 2)
+# Output: (2, 1, 2, 0)
+
+use strict;
+use warnings;
+
+my @ints = (5, 2, 1, 6);
+smaller_than_current(\@ints);
+
+@ints = (1, 2, 0, 3);
+smaller_than_current(\@ints);
+
+@ints = (0, 1);
+smaller_than_current(\@ints);
+
+@ints = (9, 4, 9, 2);
+smaller_than_current(\@ints);
+
+exit 0;
+
+sub smaller_than_current {
+ my $ints = shift || [];
+
+ my @smaller = map { my $i = $_;
+ scalar map { $ints->[$_] < $ints->[$i] ? 1 : ()
+ } 0..$#ints
+ } 0..$#ints;
+ printf "(%s) -> (%s)\n",
+ (join ', ', @$ints ),
+ (join ', ', @smaller );
+
+ return undef;
+}