aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorntovar <tovar.nelo@gmail.com>2024-07-06 11:00:46 -0500
committerntovar <tovar.nelo@gmail.com>2024-07-06 11:00:46 -0500
commit565e82d7f39958c5e8ec4059efd9dde382481a3a (patch)
tree7223b4262f7eb95521ab8566710a60c7be8f526f
parentf18cb7a95e46b9ded70a2d1d932d0bb7b1772a67 (diff)
downloadperlweeklychallenge-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/21
-rwxr-xr-xchallenge-276/nelo-tovar/bash/ch-1.sh35
-rwxr-xr-xchallenge-276/nelo-tovar/bash/ch-2.sh58
-rw-r--r--challenge-276/nelo-tovar/perl/ch-1.pl41
-rw-r--r--challenge-276/nelo-tovar/perl/ch-2.pl41
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 ' ';
+}