aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Anderson <mark@andemark.io>2025-10-20 04:06:41 +0000
committerMark Anderson <mark@andemark.io>2025-10-20 04:06:41 +0000
commitfcd06b09c6d8b4b8563f4da991a74095adb5a93b (patch)
treecb8d9c00271853c8f83c5490937f5414dc5a9196
parent0089e40542c8edad54c99aad1b7e01bfe7050231 (diff)
downloadperlweeklychallenge-club-fcd06b09c6d8b4b8563f4da991a74095adb5a93b.tar.gz
perlweeklychallenge-club-fcd06b09c6d8b4b8563f4da991a74095adb5a93b.tar.bz2
perlweeklychallenge-club-fcd06b09c6d8b4b8563f4da991a74095adb5a93b.zip
Challenge 344 Solutions (Raku)
-rw-r--r--challenge-344/mark-anderson/raku/ch-1.raku13
-rw-r--r--challenge-344/mark-anderson/raku/ch-2.raku23
2 files changed, 36 insertions, 0 deletions
diff --git a/challenge-344/mark-anderson/raku/ch-1.raku b/challenge-344/mark-anderson/raku/ch-1.raku
new file mode 100644
index 0000000000..8090d92bb2
--- /dev/null
+++ b/challenge-344/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,13 @@
+#!/usr/bin/env raku
+use Test;
+
+is array-form-compute((1,2,3,4), 12), (1,2,4,6);
+is array-form-compute((2,7,4), 181), (4,5,5);
+is array-form-compute((9,9,9), 1), (1,0,0,0);
+is array-form-compute((1,0,0,0,0), 9999), (1,9,9,9,9);
+is array-form-compute((0,), 1000), (1,0,0,0);
+
+sub array-form-compute(@ints, $x)
+{
+ .comb given @ints.join + $x
+}
diff --git a/challenge-344/mark-anderson/raku/ch-2.raku b/challenge-344/mark-anderson/raku/ch-2.raku
new file mode 100644
index 0000000000..6aa924e9b2
--- /dev/null
+++ b/challenge-344/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,23 @@
+#!/usr/bin/env raku
+use Test;
+
+ok array-formation([[2,3],[1],[4]], [1,2,3,4]);
+nok array-formation([[1,3],[2,4]], [1,2,3,4]);
+ok array-formation([[9,1],[5,8],[2]], [5,8,2,9,1]);
+nok array-formation([[1],[3]], [1,2,3]);
+ok array-formation([[7,4,6]], [7,4,6]);
+ok array-formation([[1],[2,33],[33,4],[2,33,4,5],[7],[1,2]],
+ [1,2,33,4,5,7,33,4,2,33,1,2]);
+
+sub array-formation(@source, @target)
+{
+ my $target = @target.Str;
+
+ for @source.sort(-*.elems)
+ {
+ $target .= subst(/$_/, 'X');
+ return False unless $/
+ }
+
+ $target !~~ /<digit>/
+}