aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaldhar H. Vyas <jaldhar@braincells.com>2023-01-14 10:15:27 -0500
committerJaldhar H. Vyas <jaldhar@braincells.com>2023-01-14 10:15:27 -0500
commitaaeb3573bc0a3f94d54245276d72250e088f8f0f (patch)
treee09e528c55d119481ba61187a1e2a66bd6952e10
parent13e4a2c007d7a0aac2bd1b8a48aa28003d772dc5 (diff)
downloadperlweeklychallenge-club-aaeb3573bc0a3f94d54245276d72250e088f8f0f.tar.gz
perlweeklychallenge-club-aaeb3573bc0a3f94d54245276d72250e088f8f0f.tar.bz2
perlweeklychallenge-club-aaeb3573bc0a3f94d54245276d72250e088f8f0f.zip
Challenge 199 by Jaldhar H. Vyas.
-rw-r--r--challenge-199/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-199/jaldhar-h-vyas/perl/ch-1.pl16
-rwxr-xr-xchallenge-199/jaldhar-h-vyas/perl/ch-2.pl37
-rwxr-xr-xchallenge-199/jaldhar-h-vyas/raku/ch-1.raku15
-rwxr-xr-xchallenge-199/jaldhar-h-vyas/raku/ch-2.raku22
5 files changed, 91 insertions, 0 deletions
diff --git a/challenge-199/jaldhar-h-vyas/blog.txt b/challenge-199/jaldhar-h-vyas/blog.txt
new file mode 100644
index 0000000000..f57dc249d5
--- /dev/null
+++ b/challenge-199/jaldhar-h-vyas/blog.txt
@@ -0,0 +1 @@
+https://www.braincells.com/perl/2023/01/perl_weekly_challenge_week_199.html \ No newline at end of file
diff --git a/challenge-199/jaldhar-h-vyas/perl/ch-1.pl b/challenge-199/jaldhar-h-vyas/perl/ch-1.pl
new file mode 100755
index 0000000000..fe2c5a563b
--- /dev/null
+++ b/challenge-199/jaldhar-h-vyas/perl/ch-1.pl
@@ -0,0 +1,16 @@
+#!/usr/bin/perl
+use 5.030;
+use warnings;
+
+my @list = @ARGV;
+my @goodpairs;
+
+for my $i (0 .. scalar @list - 1) {
+ for my $j ($i + 1 .. scalar @list - 1) {
+ if ($list[$j] == $list[$i]) {
+ push @goodpairs, [$i, $j];
+ }
+ }
+}
+
+say scalar @goodpairs;
diff --git a/challenge-199/jaldhar-h-vyas/perl/ch-2.pl b/challenge-199/jaldhar-h-vyas/perl/ch-2.pl
new file mode 100755
index 0000000000..542d5c0783
--- /dev/null
+++ b/challenge-199/jaldhar-h-vyas/perl/ch-2.pl
@@ -0,0 +1,37 @@
+#!/usr/bin/perl
+use 5.030;
+use warnings;
+use English;
+use Getopt::Long;
+
+sub usage() {
+ say <<"-USAGE-";
+ Usage:
+ $PROGRAM_NAME [-x[=Int]] [-y[=Int]] [-z[=Int]] [<array> ...]
+-USAGE-
+ exit(0);
+}
+
+my @goodtriplets;
+my ($x, $y, $z);
+my @array;
+
+GetOptions("x=i" => \$x, "y=i" => \$y, "z=i" => \$z, '<>' => sub { push @array, shift; });
+for ($x, $y, $z) {
+ defined($_) || usage()
+};
+scalar @array || usage();
+
+for my $i (0 .. scalar @array - 1) {
+ for my $j ($i + 1 .. scalar @array - 1) {
+ for my $k ($j + 1 .. scalar @array - 1) {
+ if ((abs($array[$i] - $array[$j]) <= $x) &&
+ (abs($array[$j] - $array[$k]) <= $y) &&
+ (abs($array[$i] - $array[$k]) <= $z)) {
+ push @goodtriplets, [$i, $j, $k];
+ }
+ }
+ }
+}
+
+say scalar @goodtriplets;
diff --git a/challenge-199/jaldhar-h-vyas/raku/ch-1.raku b/challenge-199/jaldhar-h-vyas/raku/ch-1.raku
new file mode 100755
index 0000000000..c5ac4f5c50
--- /dev/null
+++ b/challenge-199/jaldhar-h-vyas/raku/ch-1.raku
@@ -0,0 +1,15 @@
+#!/usr/bin/raku
+
+sub MAIN(*@list) {
+ my @goodpairs;
+
+ for 0 .. @list.end -> $i {
+ for $i ^.. @list.end -> $j {
+ if @list[$j] == @list[$i] {
+ @goodpairs.push(($i, $j));
+ }
+ }
+ }
+
+ @goodpairs.elems.say;
+} \ No newline at end of file
diff --git a/challenge-199/jaldhar-h-vyas/raku/ch-2.raku b/challenge-199/jaldhar-h-vyas/raku/ch-2.raku
new file mode 100755
index 0000000000..f484001f92
--- /dev/null
+++ b/challenge-199/jaldhar-h-vyas/raku/ch-2.raku
@@ -0,0 +1,22 @@
+#!/usr/bin/raku
+
+sub MAIN(
+ Int :$x, Int :$y, Int :$z, *@array
+ where { defined $x && defined $y && defined $z && @array.elems }
+) {
+ my @goodtriplets;
+
+ for 0 .. @array.end -> $i {
+ for $i ^.. @array.end -> $j {
+ for $j ^.. @array.end -> $k {
+ if (@array[$i] - @array[$j]).abs <= $x &&
+ (@array[$j] - @array[$k]).abs <= $y &&
+ (@array[$i] - @array[$k]).abs <= $z {
+ @goodtriplets.push(@array[$i,$j,$k]);
+ }
+ }
+ }
+ }
+
+ @goodtriplets.elems.say;
+} \ No newline at end of file