diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2023-04-03 00:04:38 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-03 00:04:38 +0100 |
| commit | 41a72990876f7df2118e62da5046d66d160d1a89 (patch) | |
| tree | 7e2aeb1427fd486cc6c315709ce299dd302cf7db | |
| parent | 6c0d7b957b00d5d239cfcca00946c4f2dbfb998b (diff) | |
| parent | 9ce42a5f55b6cbbbe3a76834afc6e00a6ce92a16 (diff) | |
| download | perlweeklychallenge-club-41a72990876f7df2118e62da5046d66d160d1a89.tar.gz perlweeklychallenge-club-41a72990876f7df2118e62da5046d66d160d1a89.tar.bz2 perlweeklychallenge-club-41a72990876f7df2118e62da5046d66d160d1a89.zip | |
Merge pull request #7811 from andemark/branch-for-challenge-210
Challenge 210 Solutions (Raku)
| -rw-r--r-- | challenge-210/mark-anderson/raku/ch-1.raku | 12 | ||||
| -rw-r--r-- | challenge-210/mark-anderson/raku/ch-2.raku | 28 |
2 files changed, 40 insertions, 0 deletions
diff --git a/challenge-210/mark-anderson/raku/ch-1.raku b/challenge-210/mark-anderson/raku/ch-1.raku new file mode 100644 index 0000000000..bbecba6e17 --- /dev/null +++ b/challenge-210/mark-anderson/raku/ch-1.raku @@ -0,0 +1,12 @@ +#!/usr/bin/env raku +use Test; + +# Ignore my earlier solution - I totally misunderstood the problem. 🤦 + +is kill-and-win(2,3,1), 6; +is kill-and-win(1,1,2,2,2,3), 11; + +sub kill-and-win(*@ints) +{ + sum @ints +} diff --git a/challenge-210/mark-anderson/raku/ch-2.raku b/challenge-210/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..8a150dcd56 --- /dev/null +++ b/challenge-210/mark-anderson/raku/ch-2.raku @@ -0,0 +1,28 @@ +#!/usr/bin/env raku +use Test; + +# I'm treating 0 as a positive number + +is-deeply number-collisions(2,3,-1), (2,3); +is-deeply number-collisions(3,2,-4), (-4,); +is-deeply number-collisions(-2,-1,-3,1,2,3), (-2,-1,-3,1,2,3); +is-deeply number-collisions(1,2,3,-3,-1), (1,2); +is-deeply number-collisions(-2,4,5,-3,-1,9,-8), (-2,4,5,9); +is-deeply number-collisions(12,43,-76,-8,88,-88,-19,11,2,-1,0,-99), (-76,-8,-19,-99); +is-deeply number-collisions(99,12,43,-76,-8,88,-88,-19,11,2,-1,0,-99), (); +is-deeply number-collisions(12,43,-76,-8,88,-88,-19,11,2,-1,0), (-76,-8,-19,11,2,0); + +sub number-collisions(*@a) +{ + given $_ = @a.join(' ') + { + while / <!after \-\d*> (\d+) \s (\-\d+) / + { + when $0 < $1.abs { .substr-rw($0.from, $0.to.succ - $0.from) = Empty } + when $0 > $1.abs { .substr-rw($1.from, $1.to.succ - $1.from) = Empty } + default { .substr-rw($0.from, $1.to.succ - $0.from) = Empty } + } + + .comb(/ \-? \d+ /)>>.Int + } +} |
