diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2023-12-02 11:18:06 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-02 11:18:06 +0000 |
| commit | bcb1110fa0e9176152c1e2d87768c2c9d7e926f0 (patch) | |
| tree | 9544cd335d2188e84fc174b6774c47dd87810822 | |
| parent | 47486d2f49d2cec24bfa8f9887d8ae490449ad4d (diff) | |
| parent | c615d15256c47f97769c24d07800c5d49b63329c (diff) | |
| download | perlweeklychallenge-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-x | challenge-245/nelo-tovar/bash/ch-1.sh | 38 | ||||
| -rw-r--r-- | challenge-245/nelo-tovar/perl/ch-1.pl | 49 | ||||
| -rw-r--r-- | challenge-245/nelo-tovar/perl/ch-2.pl | 47 |
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 ' '; +} |
