aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2023-04-03 00:04:38 +0100
committerGitHub <noreply@github.com>2023-04-03 00:04:38 +0100
commit41a72990876f7df2118e62da5046d66d160d1a89 (patch)
tree7e2aeb1427fd486cc6c315709ce299dd302cf7db
parent6c0d7b957b00d5d239cfcca00946c4f2dbfb998b (diff)
parent9ce42a5f55b6cbbbe3a76834afc6e00a6ce92a16 (diff)
downloadperlweeklychallenge-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.raku12
-rw-r--r--challenge-210/mark-anderson/raku/ch-2.raku28
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
+ }
+}