aboutsummaryrefslogtreecommitdiff
path: root/challenge-078/abigail/Part1
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.be>2020-09-15 13:26:46 +0200
committerAbigail <abigail@abigail.be>2020-09-15 13:26:46 +0200
commitdf4aee15abcc46f8b2844b7ba035b45afa0ff31e (patch)
tree9687453f66e34e0e84a2860019d996b915772f6a /challenge-078/abigail/Part1
parentf7f7e909e68839d8b93ab65027aa66b129c7a401 (diff)
downloadperlweeklychallenge-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/input11
-rw-r--r--challenge-078/abigail/Part1/input21
-rw-r--r--challenge-078/abigail/Part1/input32
-rw-r--r--challenge-078/abigail/Part1/output1.exp1
-rw-r--r--challenge-078/abigail/Part1/output2.exp1
-rw-r--r--challenge-078/abigail/Part1/output3.exp1
-rwxr-xr-xchallenge-078/abigail/Part1/solution.pl43
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;