aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xchallenge-117/stuart-little/raku/ch-1.raku23
-rwxr-xr-xchallenge-117/stuart-little/raku/ch-2.raku22
2 files changed, 45 insertions, 0 deletions
diff --git a/challenge-117/stuart-little/raku/ch-1.raku b/challenge-117/stuart-little/raku/ch-1.raku
new file mode 100755
index 0000000000..cb7fd71738
--- /dev/null
+++ b/challenge-117/stuart-little/raku/ch-1.raku
@@ -0,0 +1,23 @@
+#!/usr/bin/env raku
+use v6;
+
+# run <script> <path-to-file>
+
+my @lines = (@*ARGS.elems) ?? (@*ARGS[0].IO.lines) !! ($=finish.lines);
+((@lines.elems+1)*(@lines.elems + 2)/2 - @lines.map({ /^<-[\d]>*(\d+)/; $0.Int }).sum ).say;
+
+=finish
+11, Line Eleven
+1, Line one
+9, Line Nine
+13, Line Thirteen
+2, Line two
+6, Line Six
+8, Line Eight
+10, Line Ten
+7, Line Seven
+4, Line Four
+14, Line Fourteen
+3, Line three
+15, Line Fifteen
+5, Line Five
diff --git a/challenge-117/stuart-little/raku/ch-2.raku b/challenge-117/stuart-little/raku/ch-2.raku
new file mode 100755
index 0000000000..9368307c84
--- /dev/null
+++ b/challenge-117/stuart-little/raku/ch-2.raku
@@ -0,0 +1,22 @@
+#!/usr/bin/env raku
+use v6;
+
+# run <script> <number>
+
+my @memo=[[''],['R','LH']];
+
+sub mkPaths($size) {
+ ($size >= @memo.elems) && do {
+ my @res = mkPaths($size-1).map({ 'R' ~ $_ }).Array;
+ for (0..^$size) -> $nr {
+ my @gluedPairs = (mkPaths($nr).Seq X mkPaths($size -1 - $nr).Seq).map({ 'L' ~ $_.[0] ~ 'H' ~ $_.[1] });
+ @res.push(|@gluedPairs);
+ }
+ @memo.push(@res.Array);
+ };
+ return @memo[$size];
+}
+
+for (mkPaths(@*ARGS[0].Int).Seq) {
+ .say;
+}