diff options
| author | Abigail <abigail@abigail.be> | 2020-09-15 13:26:46 +0200 |
|---|---|---|
| committer | Abigail <abigail@abigail.be> | 2020-09-15 13:26:46 +0200 |
| commit | df4aee15abcc46f8b2844b7ba035b45afa0ff31e (patch) | |
| tree | 9687453f66e34e0e84a2860019d996b915772f6a /challenge-078/abigail/Part1 | |
| parent | f7f7e909e68839d8b93ab65027aa66b129c7a401 (diff) | |
| download | perlweeklychallenge-club-df4aee15abcc46f8b2844b7ba035b45afa0ff31e.tar.gz perlweeklychallenge-club-df4aee15abcc46f8b2844b7ba035b45afa0ff31e.tar.bz2 perlweeklychallenge-club-df4aee15abcc46f8b2844b7ba035b45afa0ff31e.zip | |
Perl solutions for Week 78
Diffstat (limited to 'challenge-078/abigail/Part1')
| -rw-r--r-- | challenge-078/abigail/Part1/input1 | 1 | ||||
| -rw-r--r-- | challenge-078/abigail/Part1/input2 | 1 | ||||
| -rw-r--r-- | challenge-078/abigail/Part1/input3 | 2 | ||||
| -rw-r--r-- | challenge-078/abigail/Part1/output1.exp | 1 | ||||
| -rw-r--r-- | challenge-078/abigail/Part1/output2.exp | 1 | ||||
| -rw-r--r-- | challenge-078/abigail/Part1/output3.exp | 1 | ||||
| -rwxr-xr-x | challenge-078/abigail/Part1/solution.pl | 43 |
7 files changed, 50 insertions, 0 deletions
diff --git a/challenge-078/abigail/Part1/input1 b/challenge-078/abigail/Part1/input1 new file mode 100644 index 0000000000..9a2d61d8c5 --- /dev/null +++ b/challenge-078/abigail/Part1/input1 @@ -0,0 +1 @@ +9 10 7 5 6 1 diff --git a/challenge-078/abigail/Part1/input2 b/challenge-078/abigail/Part1/input2 new file mode 100644 index 0000000000..02c7bd24aa --- /dev/null +++ b/challenge-078/abigail/Part1/input2 @@ -0,0 +1 @@ +3 4 5 diff --git a/challenge-078/abigail/Part1/input3 b/challenge-078/abigail/Part1/input3 new file mode 100644 index 0000000000..139597f9cb --- /dev/null +++ b/challenge-078/abigail/Part1/input3 @@ -0,0 +1,2 @@ + + diff --git a/challenge-078/abigail/Part1/output1.exp b/challenge-078/abigail/Part1/output1.exp new file mode 100644 index 0000000000..65f1fa0ab1 --- /dev/null +++ b/challenge-078/abigail/Part1/output1.exp @@ -0,0 +1 @@ +10 7 6 1 diff --git a/challenge-078/abigail/Part1/output2.exp b/challenge-078/abigail/Part1/output2.exp new file mode 100644 index 0000000000..7ed6ff82de --- /dev/null +++ b/challenge-078/abigail/Part1/output2.exp @@ -0,0 +1 @@ +5 diff --git a/challenge-078/abigail/Part1/output3.exp b/challenge-078/abigail/Part1/output3.exp new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/challenge-078/abigail/Part1/output3.exp @@ -0,0 +1 @@ +0 diff --git a/challenge-078/abigail/Part1/solution.pl b/challenge-078/abigail/Part1/solution.pl new file mode 100755 index 0000000000..e74cbbb0c4 --- /dev/null +++ b/challenge-078/abigail/Part1/solution.pl @@ -0,0 +1,43 @@ +#!/opt/perl/bin/perl + +# +# Exercise: +# You are given an array @A containing distinct integers. +# Write a script to find all leader elements in the array @A. +# Print (0) if none found. An element is leader if it is greater +# than all the elements to its right side. +# + +# +# Note: +# - The only way no leader element can be found is if the array is empty. +# - We will read the array from STDIN. +# + +use 5.032; + +use strict; +use warnings; +no warnings 'syntax'; + +use experimental 'signatures'; + +my $max; + +# +# Read the input, extract integers, and store them in @A. +# If the input is empty, print 0 and exit. +# +say (0), exit unless my @A = <> =~ /[0-9]+/g; + +local $, = " "; + +# +# Reverse the array, and extract each element which was larger +# than any seen before (keep state in $max), then reverse it +# again before printing. +# + +say reverse + grep {!defined $max || $_ > $max ? do {$max = $_; 1} : 0} + reverse @A; |
