aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-217/wambash/raku/ch-1.raku17
-rw-r--r--challenge-217/wambash/raku/ch-2.raku25
2 files changed, 42 insertions, 0 deletions
diff --git a/challenge-217/wambash/raku/ch-1.raku b/challenge-217/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..2a4d7076c7
--- /dev/null
+++ b/challenge-217/wambash/raku/ch-1.raku
@@ -0,0 +1,17 @@
+#!/usr/bin/env raku
+
+sub sorted-matrix (*@matrix) {
+ @matrix.sort[2]
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is sorted-matrix([3, 1, 2], [5, 2, 4], [0, 1, 3]), 1;
+ is sorted-matrix([2,1],[4,5]),4;
+ is sorted-matrix([1, 0, 3], [0, 0, 0], [1, 2, 1]),0;
+ done-testing;
+}
+
+multi MAIN (*@matrix) {
+ say sorted-matrix @matrix
+}
diff --git a/challenge-217/wambash/raku/ch-2.raku b/challenge-217/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..9395791be4
--- /dev/null
+++ b/challenge-217/wambash/raku/ch-2.raku
@@ -0,0 +1,25 @@
+#!/usr/bin/env raku
+
+sub max-number (+@list) {
+ my $max-length = .max div .min + 1 with @list».codes.minmax;
+
+ @list
+ andthen .sort: *.Str x $max-length
+ andthen .reverse
+ andthen .join
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is max-number(1, 12, 101), '121101';
+ is max-number(1, 23), '231';
+ is max-number(10, 3, 2), '3210';
+ is max-number(31, 2, 4, 10), '431210';
+ is max-number(5, 11, 4, 1, 2), '542111';
+ is max-number(1,10), '110';
+ done-testing;
+}
+
+multi MAIN (*@list) {
+ say max-number @list
+}