diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-09-17 03:36:41 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-09-17 03:36:41 +0100 |
| commit | 00b3fb9bb75db870faf9b11462eb300b9fc585d0 (patch) | |
| tree | a4eff1906823199878bf4c2f464162f5637a907a /challenge-078 | |
| parent | efa76f58537daab96c375c884152b24c8af84ffa (diff) | |
| download | perlweeklychallenge-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.txt | 1 | ||||
| -rw-r--r-- | challenge-078/laurent-rosenfeld/perl/ch-1.pl | 17 | ||||
| -rw-r--r-- | challenge-078/laurent-rosenfeld/perl/ch-2.pl | 17 | ||||
| -rw-r--r-- | challenge-078/laurent-rosenfeld/raku/ch-1.raku | 16 | ||||
| -rw-r--r-- | challenge-078/laurent-rosenfeld/raku/ch-2.raku | 10 |
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; +} |
