From 36ceb6c706af6c658a54c9bd6457f5e55ff1692c Mon Sep 17 00:00:00 2001 From: Mark Anderson Date: Mon, 14 Dec 2020 15:48:22 -0700 Subject: Challenge 91 Solutions --- challenge-091/mark-anderson/raku/ch-1.raku | 27 +++++++++++++++++++++++++++ challenge-091/mark-anderson/raku/ch-2.raku | 28 ++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 challenge-091/mark-anderson/raku/ch-1.raku create mode 100644 challenge-091/mark-anderson/raku/ch-2.raku 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..e753537862 --- /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; +} -- cgit From 0ece55d2de14ad7ebc505cb68593946386d20175 Mon Sep 17 00:00:00 2001 From: Mark Anderson Date: Mon, 14 Dec 2020 16:41:19 -0700 Subject: Challenge 91 Solutions --- challenge-091/mark-anderson/raku/ch-1.raku | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/challenge-091/mark-anderson/raku/ch-1.raku b/challenge-091/mark-anderson/raku/ch-1.raku index e753537862..cd5b0aca25 100644 --- a/challenge-091/mark-anderson/raku/ch-1.raku +++ b/challenge-091/mark-anderson/raku/ch-1.raku @@ -20,7 +20,7 @@ sub count-number(PositiveInt $N) { my $result; for $N ~~ m:g/ (<[1..9]>) $0* / { - $result ~= .chars ~ ~.head; + $result ~= .chars ~ .head; } $result; -- cgit