aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaldhar H. Vyas <jaldhar@braincells.com>2024-01-14 15:37:42 -0500
committerJaldhar H. Vyas <jaldhar@braincells.com>2024-01-14 15:37:42 -0500
commit792c93b84a7620d53c7954e504350cae61a98433 (patch)
tree9c0912901ba691dc49484dbe8b98988961217779
parentda0d5dcf50f8fa8def91abaafce1fd5624ec1a61 (diff)
downloadperlweeklychallenge-club-792c93b84a7620d53c7954e504350cae61a98433.tar.gz
perlweeklychallenge-club-792c93b84a7620d53c7954e504350cae61a98433.tar.bz2
perlweeklychallenge-club-792c93b84a7620d53c7954e504350cae61a98433.zip
Challenge 251 by Jaldhar H. Vyas
-rw-r--r--challenge-251/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-251/jaldhar-h-vyas/perl/ch-1.pl15
-rwxr-xr-xchallenge-251/jaldhar-h-vyas/perl/ch-2.pl52
-rwxr-xr-xchallenge-251/jaldhar-h-vyas/raku/ch-1.raku17
-rwxr-xr-xchallenge-251/jaldhar-h-vyas/raku/ch-2.raku11
5 files changed, 96 insertions, 0 deletions
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