aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark <53903062+andemark@users.noreply.github.com>2024-01-08 07:01:43 +0000
committerMark <53903062+andemark@users.noreply.github.com>2024-01-08 07:01:43 +0000
commitcf099618b9fb98ac225c348e4c42e19b79dd67ab (patch)
tree16e18e1f192d6cd81c69a34492096f71f8add371
parent9a485c9bac8e3887b165d67c9aa81d71cdd42f01 (diff)
downloadperlweeklychallenge-club-cf099618b9fb98ac225c348e4c42e19b79dd67ab.tar.gz
perlweeklychallenge-club-cf099618b9fb98ac225c348e4c42e19b79dd67ab.tar.bz2
perlweeklychallenge-club-cf099618b9fb98ac225c348e4c42e19b79dd67ab.zip
Challenge 251 Solutions (Raku)
-rw-r--r--challenge-251/mark-anderson/raku/ch-1.raku11
-rw-r--r--challenge-251/mark-anderson/raku/ch-2.raku55
2 files changed, 66 insertions, 0 deletions
diff --git a/challenge-251/mark-anderson/raku/ch-1.raku b/challenge-251/mark-anderson/raku/ch-1.raku
new file mode 100644
index 0000000000..6b938ecd27
--- /dev/null
+++ b/challenge-251/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,11 @@
+#!/usr/bin/env raku
+use Test;
+
+is concat-val([6,12,25,1]), 1286;
+is concat-val([10,7,31,5,2,2]), 489;
+is concat-val([1,2,10]), 112;
+
+sub concat-val(@a)
+{
+ [+] map { @a.shift ~ (@a.pop || Empty) }, ^(@a / 2)
+}
diff --git a/challenge-251/mark-anderson/raku/ch-2.raku b/challenge-251/mark-anderson/raku/ch-2.raku
new file mode 100644
index 0000000000..eede360155
--- /dev/null
+++ b/challenge-251/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,55 @@
+#!/usr/bin/env raku
+use Test;
+
+is-deeply (15,), lucky-numbers([
+ [ 3, 7, 8 ],
+ [ 9, 11, 13 ],
+ [ 15, 16, 17 ]
+ ]);
+
+is-deeply (12,), lucky-numbers([
+ [ 1, 10, 4, 2 ],
+ [ 9, 3, 8, 7 ],
+ [ 15, 16, 17, 12 ]
+ ]);
+
+is-deeply (7,), lucky-numbers([
+ [ 7, 8 ],
+ [ 1, 2 ]
+ ]);
+
+is-deeply (16,), lucky-numbers([
+ [ 22, 4, 20, 24 ],
+ [ 21, 16, 23, 18 ],
+ [ 3, 12, 19, 5 ],
+ [ 15, 7, 10, 2 ],
+ [ 17, 11, 6, 13 ],
+ [ 9, 8, 14, 1 ]
+ ]);
+
+is-deeply (), lucky-numbers([
+ [ 26, 50, 10, 54, 42, 31, 45, 58 ],
+ [ 29, 64, 23, 35, 15, 41, 27, 17 ],
+ [ 55, 37, 1, 30, 52, 53, 21, 46 ],
+ [ 3, 2, 6, 36, 11, 13, 19, 22 ],
+ [ 61, 47, 32, 39, 49, 62, 9, 12 ],
+ [ 20, 60, 44, 7, 59, 34, 14, 16 ],
+ [ 8, 24, 38, 43, 56, 48, 57, 25 ],
+ [ 5, 40, 33, 28, 63, 18, 4, 51 ]
+ ]);
+
+is-deeply (43,), lucky-numbers([
+ [ 34, 2, 9, 53, 32, 29, 36, 30 ],
+ [ 7, 19, 24, 10, 26, 27, 31, 25 ],
+ [ 52, 50, 39, 11, 22, 1, 54, 62 ],
+ [ 45, 56, 59, 20, 37, 17, 40, 42 ],
+ [ 14, 8, 63, 46, 5, 44, 61, 3 ],
+ [ 38, 15, 18, 16, 6, 12, 60, 4 ],
+ [ 41, 23, 13, 21, 35, 33, 28, 51 ],
+ [ 58, 48, 49, 55, 43, 47, 64, 57 ]
+ ]);
+
+sub lucky-numbers(@m)
+{
+ keys (@m>>.min (&) ([Z] @m)>>.max)
+}