aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2020-09-21 21:38:47 +0100
committerGitHub <noreply@github.com>2020-09-21 21:38:47 +0100
commite414b6086d29264de16f50cf38808ed68cad5f5c (patch)
tree97b761f2908ac7e59925c455f6b0f443c86adba8
parentefe627bc1ff8398b695786dc8871aacedf270f68 (diff)
parent7445a3719578b7fd43eb82cc45b6ce45264c6d3d (diff)
downloadperlweeklychallenge-club-e414b6086d29264de16f50cf38808ed68cad5f5c.tar.gz
perlweeklychallenge-club-e414b6086d29264de16f50cf38808ed68cad5f5c.tar.bz2
perlweeklychallenge-club-e414b6086d29264de16f50cf38808ed68cad5f5c.zip
Merge pull request #2334 from andemark/branch-for-challenge-079
Challenge 79 Solutions (Raku)
-rw-r--r--challenge-079/mark-anderson/raku/ch-1.raku3
-rw-r--r--challenge-079/mark-anderson/raku/ch-2.raku40
2 files changed, 43 insertions, 0 deletions
diff --git a/challenge-079/mark-anderson/raku/ch-1.raku b/challenge-079/mark-anderson/raku/ch-1.raku
new file mode 100644
index 0000000000..9d690421e5
--- /dev/null
+++ b/challenge-079/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,3 @@
+unit sub MAIN($N where * > 0);
+
+say (1..$N).map(*.base(2)).comb(/1/).elems mod 1000000007;
diff --git a/challenge-079/mark-anderson/raku/ch-2.raku b/challenge-079/mark-anderson/raku/ch-2.raku
new file mode 100644
index 0000000000..328f3ed5bf
--- /dev/null
+++ b/challenge-079/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,40 @@
+=begin usage
+
+Usage: raku ch-2.raku 9 3 1 1 4 2 3 2 5 1 5 8 5 5 4 3 1 7 8 9 9 1 9 5 2 2 6 5
+
+Output:
+
+9 # # # #
+8 # # # # # #
+7 # # # # # # #
+6 # # # # # # # #
+5 # # # # # # # # # # # # # #
+4 # # # # # # # # # # # # # # # #
+3 # # # # # # # # # # # # # # # # # # #
+2 # # # # # # # # # # # # # # # # # # # # # # #
+1 # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ 9 3 1 1 4 2 3 2 5 1 5 8 5 5 4 3 1 7 8 9 9 1 9 5 2 2 6 5
+
+111
+
+=end usage
+
+#| MAIN only takes arguments from 1 to 9
+unit sub MAIN(*@ints where (.elems > 0 and .all ~~ 1..9));
+
+my $pos = 0;
+my $sum = 0;
+
+for @ints.max...1 -> $n {
+ say "$n @ints.map({ $_ >= $n ?? "#" !! " " })";
+}
+
+say " ", " -" x @ints, "\n ", @ints.join(" ");
+
+while @ints.join ~~ m:c($pos)/ (\d)(\d+)(\d) <?{ $0 > $1.comb.all < $2 }> / {
+ $sum += (($0, $2).min <<->> $1.comb).sum;
+ $pos = $/.to - 1;
+}
+
+say "\n", $sum;