aboutsummaryrefslogtreecommitdiff
path: root/challenge-073
diff options
context:
space:
mode:
authorJaldhar H. Vyas <jaldhar@braincells.com>2020-08-16 14:56:25 -0400
committerJaldhar H. Vyas <jaldhar@braincells.com>2020-08-16 15:06:37 -0400
commitc6c2c3a2e5372ffd7eb027ab743ffc49d149a061 (patch)
tree794182005d200617172986c7a88cc7ac8d5dbb0e /challenge-073
parent92dd082bea3ea6dd790422942135375117bf29b4 (diff)
downloadperlweeklychallenge-club-c6c2c3a2e5372ffd7eb027ab743ffc49d149a061.tar.gz
perlweeklychallenge-club-c6c2c3a2e5372ffd7eb027ab743ffc49d149a061.tar.bz2
perlweeklychallenge-club-c6c2c3a2e5372ffd7eb027ab743ffc49d149a061.zip
Challenge 73 by Jaldhar H. Vyas
Diffstat (limited to 'challenge-073')
-rw-r--r--challenge-073/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-073/jaldhar-h-vyas/perl/ch-1.pl45
-rwxr-xr-xchallenge-073/jaldhar-h-vyas/perl/ch-2.pl44
-rwxr-xr-xchallenge-073/jaldhar-h-vyas/raku/ch-1.p616
-rwxr-xr-xchallenge-073/jaldhar-h-vyas/raku/ch-2.p616
5 files changed, 122 insertions, 0 deletions
diff --git a/challenge-073/jaldhar-h-vyas/blog.txt b/challenge-073/jaldhar-h-vyas/blog.txt
new file mode 100644
index 0000000000..ec22cc52eb
--- /dev/null
+++ b/challenge-073/jaldhar-h-vyas/blog.txt
@@ -0,0 +1 @@
+https://www.braincells.com/perl/2020/08/perl_weekly_challenge_week_73.html
diff --git a/challenge-073/jaldhar-h-vyas/perl/ch-1.pl b/challenge-073/jaldhar-h-vyas/perl/ch-1.pl
new file mode 100755
index 0000000000..4bfbbb7852
--- /dev/null
+++ b/challenge-073/jaldhar-h-vyas/perl/ch-1.pl
@@ -0,0 +1,45 @@
+#!/usr/bin/perl
+use 5.020;
+use warnings;
+use English qw/ -no_match_vars /;
+
+sub usage {
+
+ print<<"-USAGE-";
+Usage:
+ $PROGRAM_NAME <S> [<A> ...]
+
+ <S> size of sliding window
+ [<A> ...] list of integers
+-USAGE-
+
+ exit 0;
+}
+
+sub min {
+ my @A = @{ $_[0] };
+ my $least = $A[0];
+
+ for my $i (1 .. scalar @A - 1) {
+ if ($A[$i] < $least) {
+ $least = $A[$i];
+ }
+ }
+
+ return $least;
+}
+
+my $S = shift // usage();
+my @A = @ARGV;
+
+if (!scalar @A) {
+ usage();
+}
+
+my @output;
+
+for my $i (0 .. scalar @A - $S) {
+ push @output, min([ @A[$i .. $i + $S - 1] ]);
+}
+
+say join q{ }, @output;
diff --git a/challenge-073/jaldhar-h-vyas/perl/ch-2.pl b/challenge-073/jaldhar-h-vyas/perl/ch-2.pl
new file mode 100755
index 0000000000..e3ac00e299
--- /dev/null
+++ b/challenge-073/jaldhar-h-vyas/perl/ch-2.pl
@@ -0,0 +1,44 @@
+#!/usr/bin/perl
+use 5.020;
+use warnings;
+use English qw/ -no_match_vars /;
+
+sub usage {
+
+ print<<"-USAGE-";
+Usage:
+ $PROGRAM_NAME [<A> ...]
+
+ [<A> ...] list of integers
+-USAGE-
+
+ exit 0;
+}
+
+sub min {
+ my @A = @{ $_[0] };
+ my $least = $A[0];
+
+ for my $i (1 .. scalar @A - 1) {
+ if ($A[$i] < $least) {
+ $least = $A[$i];
+ }
+ }
+
+ return $least;
+}
+
+my @A = @ARGV;
+
+if (!scalar @A) {
+ usage();
+}
+
+my @output;
+
+for my $i (0 .. scalar @A - 1) {
+ my $lowest = min([ grep { $_ < $A[$i]; } @A[0 .. $i - 1] ]);
+ push @output, $lowest // 0;
+}
+
+say join q{ }, @output;
diff --git a/challenge-073/jaldhar-h-vyas/raku/ch-1.p6 b/challenge-073/jaldhar-h-vyas/raku/ch-1.p6
new file mode 100755
index 0000000000..9d6799db33
--- /dev/null
+++ b/challenge-073/jaldhar-h-vyas/raku/ch-1.p6
@@ -0,0 +1,16 @@
+#!/usr/bin/perl6
+
+sub MAIN(
+ Int $S, #= size of sliding window
+ *@A #= list of integers
+ where { @A.elems > 0; }
+) {
+
+ my @output;
+
+ for (0 .. @A.elems - $S) -> $i {
+ @output.push(@A[$i ..^ $i + $S].min);
+ }
+
+ @output.join(q{ }).say;
+}
diff --git a/challenge-073/jaldhar-h-vyas/raku/ch-2.p6 b/challenge-073/jaldhar-h-vyas/raku/ch-2.p6
new file mode 100755
index 0000000000..a57a36a52a
--- /dev/null
+++ b/challenge-073/jaldhar-h-vyas/raku/ch-2.p6
@@ -0,0 +1,16 @@
+#!/usr/bin/perl6
+
+sub MAIN(
+ *@A #= list of integers
+ where { @A.elems > 0; }
+) {
+
+ my @output;
+
+ for (0 ..^ @A.elems) -> $i {
+ my $lowest = @A[0 .. $i - 1].grep({ $_ < @A[$i]; }).min;
+ @output.push($lowest == ∞ ?? 0 !! $lowest);
+ }
+
+ @output.join(q{ }).say;
+}