aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-08-25 10:33:31 +0100
committerGitHub <noreply@github.com>2025-08-25 10:33:31 +0100
commit40ed80c7fb227ddcde0647671dfb803f1a24a4d0 (patch)
tree551d9a782ee4a05d6c26b4d900bd373a5a179e3f
parentf3b275865ab46fd69bb836e1a6606161462db080 (diff)
parent22522f443bc6d165ba22242c6ae75796c5def622 (diff)
downloadperlweeklychallenge-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.raku13
-rw-r--r--challenge-336/mark-anderson/raku/ch-2.raku26
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
+}