aboutsummaryrefslogtreecommitdiff
path: root/challenge-078
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2020-09-17 03:36:41 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2020-09-17 03:36:41 +0100
commit00b3fb9bb75db870faf9b11462eb300b9fc585d0 (patch)
treea4eff1906823199878bf4c2f464162f5637a907a /challenge-078
parentefa76f58537daab96c375c884152b24c8af84ffa (diff)
downloadperlweeklychallenge-club-00b3fb9bb75db870faf9b11462eb300b9fc585d0.tar.gz
perlweeklychallenge-club-00b3fb9bb75db870faf9b11462eb300b9fc585d0.tar.bz2
perlweeklychallenge-club-00b3fb9bb75db870faf9b11462eb300b9fc585d0.zip
- Added solutions by Laurent Rosenfeld.
Diffstat (limited to 'challenge-078')
-rw-r--r--challenge-078/laurent-rosenfeld/blog.txt1
-rw-r--r--challenge-078/laurent-rosenfeld/perl/ch-1.pl17
-rw-r--r--challenge-078/laurent-rosenfeld/perl/ch-2.pl17
-rw-r--r--challenge-078/laurent-rosenfeld/raku/ch-1.raku16
-rw-r--r--challenge-078/laurent-rosenfeld/raku/ch-2.raku10
5 files changed, 61 insertions, 0 deletions
diff --git a/challenge-078/laurent-rosenfeld/blog.txt b/challenge-078/laurent-rosenfeld/blog.txt
new file mode 100644
index 0000000000..554a45bfd0
--- /dev/null
+++ b/challenge-078/laurent-rosenfeld/blog.txt
@@ -0,0 +1 @@
+http://blogs.perl.org/users/laurent_r/2020/09/perl-weekly-challenge-leader-element-and-left-rotation.html
diff --git a/challenge-078/laurent-rosenfeld/perl/ch-1.pl b/challenge-078/laurent-rosenfeld/perl/ch-1.pl
new file mode 100644
index 0000000000..0047cf6793
--- /dev/null
+++ b/challenge-078/laurent-rosenfeld/perl/ch-1.pl
@@ -0,0 +1,17 @@
+use strict;
+use warnings;
+use feature "say";
+
+my @in = ([9, 10, 7, 5, 6, 1], [3, 4, 5]);
+for my $aref (@in) {
+ my @result;
+ my $max = @$aref[-1];
+ push @result, $max;
+ for my $item (reverse @$aref) {
+ if ($item > $max) {
+ push @result, $item;
+ $max = $item;
+ }
+ }
+ say "Input: @$aref; Output: ", join " ", reverse @result;
+}
diff --git a/challenge-078/laurent-rosenfeld/perl/ch-2.pl b/challenge-078/laurent-rosenfeld/perl/ch-2.pl
new file mode 100644
index 0000000000..e2d62ee5c1
--- /dev/null
+++ b/challenge-078/laurent-rosenfeld/perl/ch-2.pl
@@ -0,0 +1,17 @@
+use strict;
+use warnings;
+use feature "say";
+
+my @a = ( [[10, 20, 30, 40, 50],[3, 4]],
+ [[7, 4, 2, 6, 3], [1, 3, 4]] );
+left_rotate($_) for @a;
+
+sub left_rotate {
+ my $inref = shift;
+ my ($in, $indices) = @$inref;
+ say "\nInput array: @$in - Indices: @$indices";
+ for my $i (@$indices){
+ my @out = @$in[$i..$#{$in}, 0..$i -1];
+ say "@out";
+ }
+}
diff --git a/challenge-078/laurent-rosenfeld/raku/ch-1.raku b/challenge-078/laurent-rosenfeld/raku/ch-1.raku
new file mode 100644
index 0000000000..5b7e2d18e3
--- /dev/null
+++ b/challenge-078/laurent-rosenfeld/raku/ch-1.raku
@@ -0,0 +1,16 @@
+use v6;
+
+my @in = [9, 10, 7, 5, 6, 1], [3, 4, 5];
+for @in -> @a {
+ my @result = gather {
+ my $max = @a[*-1];
+ take $max;
+ for @a.reverse -> $item {
+ if $item > $max {
+ take $item;
+ $max = $item;
+ }
+ }
+ }
+ say "Input: @a[]; Output: ", @result.reverse;
+}
diff --git a/challenge-078/laurent-rosenfeld/raku/ch-2.raku b/challenge-078/laurent-rosenfeld/raku/ch-2.raku
new file mode 100644
index 0000000000..cadffacf8f
--- /dev/null
+++ b/challenge-078/laurent-rosenfeld/raku/ch-2.raku
@@ -0,0 +1,10 @@
+use v6;
+
+my @a = 10, 20, 30, 40, 50;
+my @indices = 3, 4;
+
+say "Input array: ", @a;
+for @indices -> $i {
+ my @out = @a[($i..@a.end, 0..$i -1).flat];
+ say @out;
+}