diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2020-12-16 04:35:58 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-12-16 04:35:58 +0000 |
| commit | 8a6ce207c0de59ceb92d75de31299bb28350ffbb (patch) | |
| tree | ceec55b4bd7e863c031df837ea865cd5830bb950 | |
| parent | 9d60ad52f8ba5a4fdf76df0fba9d21bc1cec5da3 (diff) | |
| parent | 0ece55d2de14ad7ebc505cb68593946386d20175 (diff) | |
| download | perlweeklychallenge-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.raku | 27 | ||||
| -rw-r--r-- | challenge-091/mark-anderson/raku/ch-2.raku | 28 |
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; +} |
