diff options
| author | ntovar <tovar.nelo@gmail.com> | 2024-07-06 11:00:46 -0500 |
|---|---|---|
| committer | ntovar <tovar.nelo@gmail.com> | 2024-07-06 11:00:46 -0500 |
| commit | 565e82d7f39958c5e8ec4059efd9dde382481a3a (patch) | |
| tree | 7223b4262f7eb95521ab8566710a60c7be8f526f | |
| parent | f18cb7a95e46b9ded70a2d1d932d0bb7b1772a67 (diff) | |
| download | perlweeklychallenge-club-565e82d7f39958c5e8ec4059efd9dde382481a3a.tar.gz perlweeklychallenge-club-565e82d7f39958c5e8ec4059efd9dde382481a3a.tar.bz2 perlweeklychallenge-club-565e82d7f39958c5e8ec4059efd9dde382481a3a.zip | |
Challenge 276. Add and Bash solutions. By Nelo Tovar
| -rw-r--r-- | challenge-276/nelo-tovar/bash/2 | 1 | ||||
| -rwxr-xr-x | challenge-276/nelo-tovar/bash/ch-1.sh | 35 | ||||
| -rwxr-xr-x | challenge-276/nelo-tovar/bash/ch-2.sh | 58 | ||||
| -rw-r--r-- | challenge-276/nelo-tovar/perl/ch-1.pl | 41 | ||||
| -rw-r--r-- | challenge-276/nelo-tovar/perl/ch-2.pl | 41 |
5 files changed, 176 insertions, 0 deletions
diff --git a/challenge-276/nelo-tovar/bash/2 b/challenge-276/nelo-tovar/bash/2 new file mode 100644 index 0000000000..75c6a4b837 --- /dev/null +++ b/challenge-276/nelo-tovar/bash/2 @@ -0,0 +1 @@ +a= 18 h[1]=18 h[2]=24 diff --git a/challenge-276/nelo-tovar/bash/ch-1.sh b/challenge-276/nelo-tovar/bash/ch-1.sh new file mode 100755 index 0000000000..c61c0caf80 --- /dev/null +++ b/challenge-276/nelo-tovar/bash/ch-1.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash +# +# The Weekly Challenge 276 - By Nelo Tovar +# +# https://theweeklychallenge.org/blog/perl-weekly-challenge-276/ +# +# Task 1 - Complete Day + +function complete_day() { + local hours=("$@") + local length=${#hours[@]} + local amount=0 + + for (( i = 0; i < $length - 1; i++ )); do + for (( j = $i + 1 ; j < $length; j++ )); do + ((value=(${hours[$i]} + ${hours[$j]}) % 24)) + if [[ $value -eq 0 ]]; then + ((amount++)) + fi + done + done + + echo $amount +} + +examples=('12 12 30 24 24' '72 48 24 5' '12 18 24') + +for e in "${examples[@]}"; do + array=($e) + cd=($(complete_day "${array[@]}")) + echo "Input : hours = (${array[@]})" + echo "Output : $cd" + echo "" +done + diff --git a/challenge-276/nelo-tovar/bash/ch-2.sh b/challenge-276/nelo-tovar/bash/ch-2.sh new file mode 100755 index 0000000000..c1195f5648 --- /dev/null +++ b/challenge-276/nelo-tovar/bash/ch-2.sh @@ -0,0 +1,58 @@ +#!/usr/bin/env bash +# +# The Weekly Challenge 276 - By Nelo Tovar +# +# https://theweeklychallenge.org/blog/perl-weekly-challenge-276/ +# +# Task 2 - Maximum Frequency + +function max() { + local array=("$@") + local max=${array[0]} + + for n in ${array[@]}; do + if [[ n -gt $max ]]; then + max=$n + fi + done + + echo $max +} + +function frequency() { + local array=("$@") + declare -A local frequency + + for i in ${array[@]}; do + temp=${frequencyf[$i]} + ((temp++)) + frequencyf[$i]=$temp + done + + echo "${frequencyf[@]@K}" +} + +function maximum_frecuency() { + local ints=("$@") + local amount=0 + declare -A local frequency="($(frequency ${ints[@]}))" + local max=$(max ${frequency[@]}) + + for key in ${ints[@]}; do + if [[ ${frequency[$key]} -eq $max ]];then + ((amount++)) + fi + done + + echo $amount +} + +examples=('1 2 2 4 1 5' '1 2 3 4 5') + +for e in "${examples[@]}"; do + array=($e) + mf=$(maximum_frecuency "${array[@]}") + echo "Input : ints = (${array[@]})" + echo -e "Output : $mf\n" +done + diff --git a/challenge-276/nelo-tovar/perl/ch-1.pl b/challenge-276/nelo-tovar/perl/ch-1.pl new file mode 100644 index 0000000000..6a3999eb82 --- /dev/null +++ b/challenge-276/nelo-tovar/perl/ch-1.pl @@ -0,0 +1,41 @@ +#!/usr/bin/env perl + +# The Weekly Challenge 276 - By Nelo Tovar +# +# https://theweeklychallenge.org/blog/perl-weekly-challenge-276/ +# +# Task 1 - Complete Day +# + +use strict; +use warnings; +use v5.28; +use Data::Dump qw(dump); + +my @examples = ( + [ 12, 12, 30, 24, 24 ], + [ 72, 48, 24, 5 ], + [ 12, 18, 24 ], +); + +sub complete_day { + my $hours = shift; + my $length = scalar @$hours; + my $amount = 0; + + for (my $i = 0; $i < $length - 1; $i++) { + for (my $j = $i + 1; $j < $length; $j++) { + $amount++ if ( ($hours->[$i] + $hours->[$j]) % 24 eq 0) + } + } + + return $amount; +} + +for my $elements (@examples) { + my $cd = complete_day $elements; + + say 'Input : @hours = ', dump(@$elements); + say 'Output : ', $cd; + say ' '; +} diff --git a/challenge-276/nelo-tovar/perl/ch-2.pl b/challenge-276/nelo-tovar/perl/ch-2.pl new file mode 100644 index 0000000000..10e2cffbe2 --- /dev/null +++ b/challenge-276/nelo-tovar/perl/ch-2.pl @@ -0,0 +1,41 @@ +#!/usr/bin/env perl + +# The Weekly Challenge 276 - By Nelo Tovar +# +# https://theweeklychallenge.org/blog/perl-weekly-challenge-276/ +# +# Task 2 - Maximum Frequency +# + +use strict; +use warnings; +use v5.28; +use List::Util qw (max); +use List::MoreUtils qw (frequency); +use Data::Dump qw(dump); + +my @examples = ( + [ 1, 2, 2, 4, 1, 5 ], + [ 1, 2, 3, 4, 5 ] +); + +sub maximum_frecuency { + my $ints = shift; + my %frecuency = frequency @$ints; + my $max = max values %frecuency; + my $amount = 0; + + foreach my $k (@$ints) { + $amount++ if ($frecuency{$k} eq $max) + } + + return $amount; +} + +for my $elements (@examples) { + my $mf = maximum_frecuency $elements; + + say 'Input : @ints = ', dump(@$elements); + say 'Output : ', $mf; + say ' '; +} |
