aboutsummaryrefslogtreecommitdiff
path: root/challenge-077
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2020-09-07 17:18:00 +0100
committerGitHub <noreply@github.com>2020-09-07 17:18:00 +0100
commit48744102c16b803ee25076175efc446a0bddf49b (patch)
tree4ce88ee234cef86a29f98136c6fbcd4babebed6a /challenge-077
parentcca5caea81f400707bfc6e8b8b4cb5e7314554c8 (diff)
parent0108da82612e55ecc3804c6f02240e20d0b322b5 (diff)
downloadperlweeklychallenge-club-48744102c16b803ee25076175efc446a0bddf49b.tar.gz
perlweeklychallenge-club-48744102c16b803ee25076175efc446a0bddf49b.tar.bz2
perlweeklychallenge-club-48744102c16b803ee25076175efc446a0bddf49b.zip
Merge pull request #2231 from andemark/branch-for-challenge-077
Challenge 77
Diffstat (limited to 'challenge-077')
-rw-r--r--challenge-077/mark-anderson/raku/ch-1.raku11
-rw-r--r--challenge-077/mark-anderson/raku/ch-2.raku39
2 files changed, 50 insertions, 0 deletions
diff --git a/challenge-077/mark-anderson/raku/ch-1.raku b/challenge-077/mark-anderson/raku/ch-1.raku
new file mode 100644
index 0000000000..5505be511f
--- /dev/null
+++ b/challenge-077/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,11 @@
+unit sub MAIN(UInt $N);
+
+my @fib = (1, 1, * + * ... * + * > $N).unique;
+
+my @results = gather {
+ for 2..@fib -> $n {
+ take $_ for @fib.combinations($n).grep(*.sum == $N);
+ }
+}
+
+say "$_.join(" + ") = $N" for @results;
diff --git a/challenge-077/mark-anderson/raku/ch-2.raku b/challenge-077/mark-anderson/raku/ch-2.raku
new file mode 100644
index 0000000000..601b766776
--- /dev/null
+++ b/challenge-077/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,39 @@
+lonely-X([ <O O X>,
+ <X O O>,
+ <X O O> ]);
+
+lonely-X([ <O O X O>,
+ <X O O O>,
+ <X O O X>,
+ <O X O O> ]);
+
+multi lonely-X(@matrix) {
+ my @results = gather {
+ for ^@matrix -> $r {
+ for ^@matrix[0] -> $c {
+ if @matrix[$r][$c] eq "X" {
+ take [$r, $c] unless any((@matrix[$r-1][$c-1] // q{}),
+ (@matrix[$r-1][$c ] // q{}),
+ (@matrix[$r-1][$c+1] // q{}),
+ (@matrix[$r ][$c-1] // q{}),
+ (@matrix[$r ][$c+1] // q{}),
+ (@matrix[$r+1][$c+1] // q{}),
+ (@matrix[$r+1][$c ] // q{}),
+ (@matrix[$r+1][$c-1] // q{})) eq "X";
+ }
+ }
+ }
+ }
+
+ if @results.elems == 0 {
+ say 0;
+ }
+
+ else {
+ say "{@results.elems} as...";
+
+ for @results -> [$r, $c] {
+ say "Lonely-X found at Row {$r+1} and Col {$c+1}";
+ }
+ }
+}