aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchirvasitua <stuart-little@users.noreply.github.com>2021-06-14 09:11:29 -0400
committerchirvasitua <stuart-little@users.noreply.github.com>2021-06-14 09:11:29 -0400
commit3bd7315931c1dc8eca44fc4b86a77909a152de10 (patch)
tree2b5337e24831b66cce70fe8346acebf4b47874c5
parentdad6bcabbefc743b091695a82fcfb92342397e38 (diff)
downloadperlweeklychallenge-club-3bd7315931c1dc8eca44fc4b86a77909a152de10.tar.gz
perlweeklychallenge-club-3bd7315931c1dc8eca44fc4b86a77909a152de10.tar.bz2
perlweeklychallenge-club-3bd7315931c1dc8eca44fc4b86a77909a152de10.zip
1st commit on 117_raku
-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;
+}