diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2025-08-25 10:33:31 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-08-25 10:33:31 +0100 |
| commit | 40ed80c7fb227ddcde0647671dfb803f1a24a4d0 (patch) | |
| tree | 551d9a782ee4a05d6c26b4d900bd373a5a179e3f | |
| parent | f3b275865ab46fd69bb836e1a6606161462db080 (diff) | |
| parent | 22522f443bc6d165ba22242c6ae75796c5def622 (diff) | |
| download | perlweeklychallenge-club-40ed80c7fb227ddcde0647671dfb803f1a24a4d0.tar.gz perlweeklychallenge-club-40ed80c7fb227ddcde0647671dfb803f1a24a4d0.tar.bz2 perlweeklychallenge-club-40ed80c7fb227ddcde0647671dfb803f1a24a4d0.zip | |
Merge pull request #12569 from andemark/challenge-336
Challenge 336 Solutions (Raku)
| -rw-r--r-- | challenge-336/mark-anderson/raku/ch-1.raku | 13 | ||||
| -rw-r--r-- | challenge-336/mark-anderson/raku/ch-2.raku | 26 |
2 files changed, 39 insertions, 0 deletions
diff --git a/challenge-336/mark-anderson/raku/ch-1.raku b/challenge-336/mark-anderson/raku/ch-1.raku new file mode 100644 index 0000000000..3891d4bdc4 --- /dev/null +++ b/challenge-336/mark-anderson/raku/ch-1.raku @@ -0,0 +1,13 @@ +#!/usr/bin/env raku +use Test; + +ok equal-group(1,1,2,2,2,2); +nok equal-group(1,1,1,2,2,2,3,3); +ok equal-group(5,5,5,5,5,5,7,7,7,7,7,7); +nok equal-group(1,2,3,4); +ok equal-group(8,8,9,9,10,10,11,11); + +sub equal-group(+@ints) +{ + ([gcd] @ints.Bag.values) > 1 +} diff --git a/challenge-336/mark-anderson/raku/ch-2.raku b/challenge-336/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..cf309721a8 --- /dev/null +++ b/challenge-336/mark-anderson/raku/ch-2.raku @@ -0,0 +1,26 @@ +#!/usr/bin/env raku +use Test; + +is final-score(< 5 2 C D + >), 30; +is final-score(< 5 -2 4 C D 9 + + >), 27; +is final-score(< 7 D D C + 3 >), 45; +is final-score(< -5 -10 + D C + >), -55; +is final-score(< 3 6 + D C 8 + D -2 C + >), 128; +is final-score(< D C 3 6 + D C 8 + D -2 C + >), 128; +is final-score(< C D 3 6 + D C 8 + D -2 C + >), 128; +is final-score(< + C 3 6 + D C 8 + D -2 C + >), 128; + +sub final-score(@scores) +{ + my @stack; + + for @scores + { + when Int { @stack.push: $_ } + when 'C' { @stack.pop } + when 'D' { quietly @stack.push: @stack.tail * 2 } + default { @stack.push: @stack.tail(2).sum } + } + + @stack.sum +} |
