diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2020-09-07 17:18:00 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-09-07 17:18:00 +0100 |
| commit | 48744102c16b803ee25076175efc446a0bddf49b (patch) | |
| tree | 4ce88ee234cef86a29f98136c6fbcd4babebed6a /challenge-077 | |
| parent | cca5caea81f400707bfc6e8b8b4cb5e7314554c8 (diff) | |
| parent | 0108da82612e55ecc3804c6f02240e20d0b322b5 (diff) | |
| download | perlweeklychallenge-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.raku | 11 | ||||
| -rw-r--r-- | challenge-077/mark-anderson/raku/ch-2.raku | 39 |
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}"; + } + } +} |
