diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-02-20 14:00:07 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-20 14:00:07 +0000 |
| commit | f94b24598e19aa56932aeb273bd1c92ec58e7308 (patch) | |
| tree | c3140e86c3eb9cc3989955b65137818e2dd5c56e | |
| parent | 11cce4eba274267942d772f04f2982854cea331f (diff) | |
| parent | a3f5b96fc591798643dbee5454142a4f4065ac0b (diff) | |
| download | perlweeklychallenge-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.go | 62 | ||||
| -rw-r--r-- | challenge-257/spadacciniweb/perl/ch-1.pl | 59 |
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; +} |
