aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2020-12-16 04:35:58 +0000
committerGitHub <noreply@github.com>2020-12-16 04:35:58 +0000
commit8a6ce207c0de59ceb92d75de31299bb28350ffbb (patch)
treeceec55b4bd7e863c031df837ea865cd5830bb950
parent9d60ad52f8ba5a4fdf76df0fba9d21bc1cec5da3 (diff)
parent0ece55d2de14ad7ebc505cb68593946386d20175 (diff)
downloadperlweeklychallenge-club-8a6ce207c0de59ceb92d75de31299bb28350ffbb.tar.gz
perlweeklychallenge-club-8a6ce207c0de59ceb92d75de31299bb28350ffbb.tar.bz2
perlweeklychallenge-club-8a6ce207c0de59ceb92d75de31299bb28350ffbb.zip
Merge pull request #2992 from andemark/branch-for-challenge-091
Challenge 91 Solutions
-rw-r--r--challenge-091/mark-anderson/raku/ch-1.raku27
-rw-r--r--challenge-091/mark-anderson/raku/ch-2.raku28
2 files changed, 55 insertions, 0 deletions
diff --git a/challenge-091/mark-anderson/raku/ch-1.raku b/challenge-091/mark-anderson/raku/ch-1.raku
new file mode 100644
index 0000000000..cd5b0aca25
--- /dev/null
+++ b/challenge-091/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,27 @@
+#!/usr/bin/env raku
+
+subset PositiveInt of UInt where * > 0;
+
+multi MAIN(PositiveInt $N) {
+ say count-number($N);
+}
+
+multi MAIN {
+ use Test;
+ plan 4;
+
+ ok count-number(1122234) == 21321314, "Example 1";
+ ok count-number(2333445) == 12332415, "Example 2";
+ ok count-number(12345) == 1112131415, "Example 3";
+ ok count-number(11211) == 211221, "Repeated Number";
+}
+
+sub count-number(PositiveInt $N) {
+ my $result;
+
+ for $N ~~ m:g/ (<[1..9]>) $0* / {
+ $result ~= .chars ~ .head;
+ }
+
+ $result;
+}
diff --git a/challenge-091/mark-anderson/raku/ch-2.raku b/challenge-091/mark-anderson/raku/ch-2.raku
new file mode 100644
index 0000000000..de2f82b22b
--- /dev/null
+++ b/challenge-091/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,28 @@
+#!/usr/bin/env raku
+
+# using the algorithm from this video...
+# https://www.youtube.com/watch?v=Zb4eRjuPHbM
+
+multi MAIN(*@N where .all ~~ UInt) {
+ say jump-game(@N);
+}
+
+multi MAIN {
+ use Test;
+ plan 2;
+
+ ok jump-game([1, 2, 1, 2]), "Example 1";
+ nok jump-game([2, 1, 1, 0, 2]), "Example 2";
+}
+
+sub jump-game(@N) {
+ my $last-good-index = @N.end;
+
+ for $last-good-index-1...0 -> $i {
+ if @N[$i] >= $last-good-index - $i {
+ $last-good-index = $i;
+ }
+ }
+
+ +not $last-good-index;
+}