From 792c93b84a7620d53c7954e504350cae61a98433 Mon Sep 17 00:00:00 2001 From: "Jaldhar H. Vyas" Date: Sun, 14 Jan 2024 15:37:42 -0500 Subject: Challenge 251 by Jaldhar H. Vyas --- challenge-251/jaldhar-h-vyas/blog.txt | 1 + challenge-251/jaldhar-h-vyas/perl/ch-1.pl | 15 +++++++++ challenge-251/jaldhar-h-vyas/perl/ch-2.pl | 52 +++++++++++++++++++++++++++++ challenge-251/jaldhar-h-vyas/raku/ch-1.raku | 17 ++++++++++ challenge-251/jaldhar-h-vyas/raku/ch-2.raku | 11 ++++++ 5 files changed, 96 insertions(+) create mode 100644 challenge-251/jaldhar-h-vyas/blog.txt create mode 100755 challenge-251/jaldhar-h-vyas/perl/ch-1.pl create mode 100755 challenge-251/jaldhar-h-vyas/perl/ch-2.pl create mode 100755 challenge-251/jaldhar-h-vyas/raku/ch-1.raku create mode 100755 challenge-251/jaldhar-h-vyas/raku/ch-2.raku diff --git a/challenge-251/jaldhar-h-vyas/blog.txt b/challenge-251/jaldhar-h-vyas/blog.txt new file mode 100644 index 0000000000..7067d1cdb7 --- /dev/null +++ b/challenge-251/jaldhar-h-vyas/blog.txt @@ -0,0 +1 @@ +https://www.braincells.com/perl/2024/01/perl_weekly_challenge_week_251.html diff --git a/challenge-251/jaldhar-h-vyas/perl/ch-1.pl b/challenge-251/jaldhar-h-vyas/perl/ch-1.pl new file mode 100755 index 0000000000..d627d5dbab --- /dev/null +++ b/challenge-251/jaldhar-h-vyas/perl/ch-1.pl @@ -0,0 +1,15 @@ +#!/usr/bin/perl +use 5.030; +use warnings; + +my $total = 0; + +while (scalar @ARGV > 1) { + $total += shift . pop; +} + +if (scalar @ARGV) { + $total += $ARGV[0]; +} + +say $total; diff --git a/challenge-251/jaldhar-h-vyas/perl/ch-2.pl b/challenge-251/jaldhar-h-vyas/perl/ch-2.pl new file mode 100755 index 0000000000..776a426a63 --- /dev/null +++ b/challenge-251/jaldhar-h-vyas/perl/ch-2.pl @@ -0,0 +1,52 @@ +#!/usr/bin/perl +use 5.030; +use warnings; + + +sub intersection { + my ($arr1, $arr2) = @_; + my %intersection; + for my $i (@{$arr1}, @{$arr2}) { + $intersection{$i}++; + } + + return grep { $intersection{$_} > 1 } keys %intersection; +} + +sub max { + my @arr = @_; + my $highest = '-inf'; + for my $i (@arr) { + if ($i > $highest) { + $highest = $i; + } + } + + return $highest; +} + +sub min { + my @arr = @_; + my $lowest = 'inf'; + for my $i (@arr) { + if ($i < $lowest) { + $lowest = $i; + } + } + + return $lowest; +} + +my @matrix = map { [ map { 0 + $_} split /\s+/ ] } @ARGV; +my @mins; +my @maxs; + +for my $i (0 .. scalar @matrix - 1) { + push @mins, min(@{$matrix[$i]}) || -1; +} + +for my $i (0 .. scalar @{$matrix[0]} - 1) { + push @maxs, max(map { $matrix[$_]->[$i] } 0 .. scalar @matrix - 1) || -1; +} + +say join q{ }, intersection(\@mins, \@maxs); diff --git a/challenge-251/jaldhar-h-vyas/raku/ch-1.raku b/challenge-251/jaldhar-h-vyas/raku/ch-1.raku new file mode 100755 index 0000000000..5f40852477 --- /dev/null +++ b/challenge-251/jaldhar-h-vyas/raku/ch-1.raku @@ -0,0 +1,17 @@ +#!/usr/bin/raku + +sub MAIN( + *@ints +) { + my $total = 0; + + while @ints.elems > 1 { + $total += @ints.shift ~ @ints.pop; + } + + if @ints.elems { + $total += @ints[0]; + } + + say $total; +} \ No newline at end of file diff --git a/challenge-251/jaldhar-h-vyas/raku/ch-2.raku b/challenge-251/jaldhar-h-vyas/raku/ch-2.raku new file mode 100755 index 0000000000..eae6d8e809 --- /dev/null +++ b/challenge-251/jaldhar-h-vyas/raku/ch-2.raku @@ -0,0 +1,11 @@ +#!/usr/bin/raku + +sub MAIN( + *@args +) { + my @matrix = @args.map({ [ $_.words.map({ .Int }) ] }); + my @mins = @matrix.keys.map({ @matrix[$_].min || -1 }); + my @maxs = @matrix[0].keys.map({ @matrix[*;$_].max || -1 }); + + (@mins ∩ @maxs).keys.join(q{ }).say; +} \ No newline at end of file -- cgit