aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2023-12-02 11:18:06 +0000
committerGitHub <noreply@github.com>2023-12-02 11:18:06 +0000
commitbcb1110fa0e9176152c1e2d87768c2c9d7e926f0 (patch)
tree9544cd335d2188e84fc174b6774c47dd87810822
parent47486d2f49d2cec24bfa8f9887d8ae490449ad4d (diff)
parentc615d15256c47f97769c24d07800c5d49b63329c (diff)
downloadperlweeklychallenge-club-bcb1110fa0e9176152c1e2d87768c2c9d7e926f0.tar.gz
perlweeklychallenge-club-bcb1110fa0e9176152c1e2d87768c2c9d7e926f0.tar.bz2
perlweeklychallenge-club-bcb1110fa0e9176152c1e2d87768c2c9d7e926f0.zip
Merge pull request #9171 from ntovar/branch-245
Challenge 245. Add Perl and Bash (ch-1) solutions. By Nelo Tovar
-rwxr-xr-xchallenge-245/nelo-tovar/bash/ch-1.sh38
-rw-r--r--challenge-245/nelo-tovar/perl/ch-1.pl49
-rw-r--r--challenge-245/nelo-tovar/perl/ch-2.pl47
3 files changed, 134 insertions, 0 deletions
diff --git a/challenge-245/nelo-tovar/bash/ch-1.sh b/challenge-245/nelo-tovar/bash/ch-1.sh
new file mode 100755
index 0000000000..dba6afce4b
--- /dev/null
+++ b/challenge-245/nelo-tovar/bash/ch-1.sh
@@ -0,0 +1,38 @@
+#!/usr/bin/env bash
+#
+# The Weekly Challenge 245 - By Nelo Tovar
+#
+# https://theweeklychallenge.org/blog/perl-weekly-challenge-245/
+#
+# Task 1 : Sort Language
+
+function sort_languages() {
+ local languages=(${!1})
+ local popularity=(${!2})
+ local length=${#languages[@]}
+ local sorted=()
+
+ for (( i = 0; i < $length; i++ )); do
+ sorted[${popularity[$i]}]=${languages[$i]}
+ done
+
+ echo ${sorted[@]}
+}
+
+example_l_1='perl c python'
+example_p_1='2 1 3'
+
+example_l_2='c++ haskell java'
+example_p_2='1 3 2'
+
+#for e in "$example1" "$example2" "$example3"; do
+for e in 1 2; do
+ v_l="example_l_$e"
+ v_p="example_p_$e"
+ sl=($(sort_languages $v_l $v_p))
+ echo "Input : lang = (${!v_l})"
+ echo " popularity = (${!v_p})"
+ echo "Output : (${sl[@]})"
+ echo ""
+done
+
diff --git a/challenge-245/nelo-tovar/perl/ch-1.pl b/challenge-245/nelo-tovar/perl/ch-1.pl
new file mode 100644
index 0000000000..a3752789dd
--- /dev/null
+++ b/challenge-245/nelo-tovar/perl/ch-1.pl
@@ -0,0 +1,49 @@
+#!/usr/bin/env perl
+
+# The Weekly Challenge 245 - By Nelo Tovar
+#
+# https://theweeklychallenge.org/blog/perl-weekly-challenge-245/
+#
+# Task 1 - Sort Language
+#
+
+use strict;
+use warnings;
+use v5.28;
+use Data::Dump qw(dump);
+
+my @examples_l = (
+ [ 'perl', 'c', 'python' ],
+ [ 'c++', 'haskell', 'java' ],
+);
+
+my @examples_p = (
+ [ 2, 1, 3 ],
+ [ 1, 3, 2 ],
+);
+
+sub sort_languages {
+ my ($languages, $popularity) = @_;
+ my $length = scalar @$languages - 1;
+ my @sorted;
+
+ for (my $index = 0; $index <= $length; $index++) {
+ $sorted[$popularity->[$index]] = $languages->[$index];
+ }
+
+ shift @sorted;
+
+ return \@sorted;
+}
+
+for (my $index = 0; $index <= $#examples_l ; $index++) {
+ my $langs = $examples_l[$index];
+ my $popularity = $examples_p[$index];
+
+ my $sorted = sort_languages $langs, $popularity;
+
+ say 'Input : @lang = ', dump(@$langs);
+ say ' @popularity = ', dump(@$popularity);
+ say 'Output : ', dump(@$sorted);
+ say ' ';
+}
diff --git a/challenge-245/nelo-tovar/perl/ch-2.pl b/challenge-245/nelo-tovar/perl/ch-2.pl
new file mode 100644
index 0000000000..18745c079b
--- /dev/null
+++ b/challenge-245/nelo-tovar/perl/ch-2.pl
@@ -0,0 +1,47 @@
+#!/usr/bin/env perl
+
+# The Weekly Challenge 245 - By Nelo Tovar
+#
+# https://theweeklychallenge.org/blog/perl-weekly-challenge-245/
+#
+# Task 2 - Largest of Three
+#
+
+use strict;
+use warnings;
+use v5.28;
+use Algorithm::Combinatorics qw(variations);
+use Data::Dump qw(dump);
+
+my @examples = (
+ [ 8, 1, 9 ],
+ [ 8, 6, 7, 1, 0 ],
+ [ 1 ],
+);
+
+sub largest_of_three {
+ my $ints = shift;
+ my $length = scalar @$ints;
+ my $max = -1;
+
+ for (my $k = 1; $k <= $length; $k++) {
+ my $iter = variations($ints, $k);
+
+ while (my $v = $iter->next) {
+ my $number = join ('', @$v);
+
+ next if ($number % 3 != 0);
+ $max = $number if ($number > $max)
+ }
+ }
+
+ return $max;
+}
+
+for my $elements (@examples) {
+ my $lot = largest_of_three $elements;
+
+ say 'Input : @ints = ', dump(@$elements);
+ say 'Output : ', $lot;
+ say ' ';
+}