diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-02-07 18:32:16 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-02-07 18:32:16 +0000 |
| commit | e687bf9df9707aed4f7a144f385a60ecac81031e (patch) | |
| tree | a70e3e53364c9c93ab58f485bd5396904d73a30c /challenge-151 | |
| parent | d85bc3269f5812807e96b1957173d70df4079d0a (diff) | |
| parent | 512732b7f20ab5fc2f32dd307092bb82b58c97e1 (diff) | |
| download | perlweeklychallenge-club-e687bf9df9707aed4f7a144f385a60ecac81031e.tar.gz perlweeklychallenge-club-e687bf9df9707aed4f7a144f385a60ecac81031e.tar.bz2 perlweeklychallenge-club-e687bf9df9707aed4f7a144f385a60ecac81031e.zip | |
Merge pull request #5624 from andemark/branch-for-challenge-151
initial 151
Diffstat (limited to 'challenge-151')
| -rw-r--r-- | challenge-151/mark-anderson/raku/ch-1.raku | 23 | ||||
| -rw-r--r-- | challenge-151/mark-anderson/raku/ch-2.raku | 34 |
2 files changed, 57 insertions, 0 deletions
diff --git a/challenge-151/mark-anderson/raku/ch-1.raku b/challenge-151/mark-anderson/raku/ch-1.raku new file mode 100644 index 0000000000..4797264da4 --- /dev/null +++ b/challenge-151/mark-anderson/raku/ch-1.raku @@ -0,0 +1,23 @@ +#!/usr/bin/env raku + +use Test; + +is binary-tree-depth('1 | 2 3 | 4 5'), 2; +is binary-tree-depth('1 | 2 3 | 4 * * 5 | * 6'), 3; +is binary-tree-depth('1 | 2 3 | 4 * * 5 | 6 * * 7 | 8 * * 9 | 10 *'), 5; + +sub binary-tree-depth($str) +{ + my $tree := $str.split(/\s\|\s/).map(*.split(/\s/)); + my $elems = 1; + my $depth = 0; + + for $tree -> $nodes + { + last unless $nodes.elems == $elems; + $elems = ($elems - $nodes.comb('*')) * 2; + $depth++; + } + + $depth; +} diff --git a/challenge-151/mark-anderson/raku/ch-2.raku b/challenge-151/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..b725a2b196 --- /dev/null +++ b/challenge-151/mark-anderson/raku/ch-2.raku @@ -0,0 +1,34 @@ +#!/usr/bin/env raku + +# With help from https://www.geeksforgeeks.org/find-maximum-possible-stolen-value-houses/ + +use Test; + +is rob(2, 4, 5), 7; +is rob(4, 2, 3, 6, 5, 3), 13; + +multi rob(+@houses where .elems == 1) +{ + @houses[0]; +} + +multi rob(+@houses where .elems == 2) +{ + max(@houses[0], @houses[1]); +} + +multi rob(+@houses) +{ + my $val1 = @houses[0]; + my $val2 = max($val1, @houses[1]); + my $max; + + for 2..@houses.end -> $i + { + $max = max(@houses[$i] + $val1, $val2); + $val1 = $val2; + $val2 = $max; + } + + $max; +} |
