aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaldhar H. Vyas <jaldhar@braincells.com>2025-11-01 17:43:50 -0400
committerJaldhar H. Vyas <jaldhar@braincells.com>2025-11-02 00:20:41 -0400
commita5cbfc01ea94263fe31e5bf45258008a1ab2c8fa (patch)
tree811df0e4dfbdf75cd650f499d16067064a773418
parente67574497a20bad40be2e73bc1c1890729e3990d (diff)
downloadperlweeklychallenge-club-a5cbfc01ea94263fe31e5bf45258008a1ab2c8fa.tar.gz
perlweeklychallenge-club-a5cbfc01ea94263fe31e5bf45258008a1ab2c8fa.tar.bz2
perlweeklychallenge-club-a5cbfc01ea94263fe31e5bf45258008a1ab2c8fa.zip
Challenge 345 by Jaldhar H. Vyas.
-rw-r--r--challenge-345/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-345/jaldhar-h-vyas/perl/ch-1.pl22
-rwxr-xr-xchallenge-345/jaldhar-h-vyas/perl/ch-2.pl21
-rwxr-xr-xchallenge-345/jaldhar-h-vyas/raku/ch-1.raku23
-rwxr-xr-xchallenge-345/jaldhar-h-vyas/raku/ch-2.raku21
5 files changed, 88 insertions, 0 deletions
diff --git a/challenge-345/jaldhar-h-vyas/blog.txt b/challenge-345/jaldhar-h-vyas/blog.txt
new file mode 100644
index 0000000000..3bdf9a8e7a
--- /dev/null
+++ b/challenge-345/jaldhar-h-vyas/blog.txt
@@ -0,0 +1 @@
+https://www.braincells.com/perl/2025/11/perl_weekly_challenge_week_345.html
diff --git a/challenge-345/jaldhar-h-vyas/perl/ch-1.pl b/challenge-345/jaldhar-h-vyas/perl/ch-1.pl
new file mode 100755
index 0000000000..d0e64e4db4
--- /dev/null
+++ b/challenge-345/jaldhar-h-vyas/perl/ch-1.pl
@@ -0,0 +1,22 @@
+#!/usr/bin/perl
+use 5.038;
+use warnings;
+
+my @ints = @ARGV;
+my @peaks;
+
+if ($ints[0] > $ints[1]) {
+ push @peaks, 0;
+}
+
+for my $i (1 .. scalar @ints - 2) {
+ if ($ints[$i - 1] < $ints[$i] > $ints[$i + 1]) {
+ push @peaks, $i;
+ }
+}
+
+if ($ints[-1] > $ints[-2]) {
+ push @peaks, $#ints;
+}
+
+say q{(}, (join q{, }, @peaks), q{)};
diff --git a/challenge-345/jaldhar-h-vyas/perl/ch-2.pl b/challenge-345/jaldhar-h-vyas/perl/ch-2.pl
new file mode 100755
index 0000000000..73a7397200
--- /dev/null
+++ b/challenge-345/jaldhar-h-vyas/perl/ch-2.pl
@@ -0,0 +1,21 @@
+#!/usr/bin/perl
+use 5.038;
+use warnings;
+
+my @ints = @ARGV;
+my @seen;
+my @ans;
+my $x = 0;
+
+for my $i (keys @ints) {
+ if ($ints[$i] == -1) {
+ push @ans, ($x < scalar @seen) ? $seen[$x] : -1;
+ $x++;
+ } else {
+ unshift @seen, $ints[$i];
+ $x = 0;
+ }
+}
+
+
+say q{(}, (join q{, }, @ans), q{)};
diff --git a/challenge-345/jaldhar-h-vyas/raku/ch-1.raku b/challenge-345/jaldhar-h-vyas/raku/ch-1.raku
new file mode 100755
index 0000000000..b7238812b8
--- /dev/null
+++ b/challenge-345/jaldhar-h-vyas/raku/ch-1.raku
@@ -0,0 +1,23 @@
+#!/usr/bin/raku
+
+sub MAIN(
+ *@ints
+) {
+ my @peaks;
+
+ if @ints[0] > @ints[1] {
+ @peaks.push(0);
+ }
+
+ for 1 ..^ @ints.end -> $i {
+ if @ints[$i -1] < @ints[$i] > @ints[$i + 1] {
+ @peaks.push($i);
+ }
+ }
+
+ if @ints[*-1] > @ints[*-2] {
+ @peaks.push(*-1);
+ }
+
+ say q{(}, @peaks.join(q{, }), q{)};
+}
diff --git a/challenge-345/jaldhar-h-vyas/raku/ch-2.raku b/challenge-345/jaldhar-h-vyas/raku/ch-2.raku
new file mode 100755
index 0000000000..7ac2da84b8
--- /dev/null
+++ b/challenge-345/jaldhar-h-vyas/raku/ch-2.raku
@@ -0,0 +1,21 @@
+#!/usr/bin/raku
+
+sub MAIN(
+ *@ints
+) {
+ my @seen;
+ my @ans;
+ my $x = 0;
+
+ for @ints.keys -> $i {
+ if @ints[$i] == -1 {
+ @ans.push( $x < @seen.elems ?? @seen[$x] !! -1);
+ $x++;
+ } else {
+ @seen.unshift(@ints[$i]);
+ $x = 0;
+ }
+ }
+
+ say q{(}, @ans.join(q{, }), q{)};
+}