diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-02-17 11:51:28 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-02-17 11:51:28 +0000 |
| commit | ad6a3be29689c6fa0fd5f21501cd9a0ded80bf7d (patch) | |
| tree | bb833f5d820c2dda8aababeb6ac95eca9e1126b5 | |
| parent | d5011e1becb2875854e0914ef7fe996a34ebf5f9 (diff) | |
| parent | 889a7b2fefef365c9d80557c482bc3e45379312f (diff) | |
| download | perlweeklychallenge-club-ad6a3be29689c6fa0fd5f21501cd9a0ded80bf7d.tar.gz perlweeklychallenge-club-ad6a3be29689c6fa0fd5f21501cd9a0ded80bf7d.tar.bz2 perlweeklychallenge-club-ad6a3be29689c6fa0fd5f21501cd9a0ded80bf7d.zip | |
Merge pull request #3557 from andemark/branch-for-challenge-100
initial ch-2.raku
| -rw-r--r-- | challenge-100/mark-anderson/raku/ch-2.raku | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/challenge-100/mark-anderson/raku/ch-2.raku b/challenge-100/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..b1464b8466 --- /dev/null +++ b/challenge-100/mark-anderson/raku/ch-2.raku @@ -0,0 +1,21 @@ +#!/usr/bin/env raku + +use Test; +plan 4; + +is min-triangle-sum([[1], [2,4], [6,4,9], [5,1,7,2]]), 8; +is min-triangle-sum([[3], [3,1], [5,2,3], [4,3,1,3]]), 7; +is min-triangle-sum([[2], [3,4], [6,5,7], [4,1,8,3]]), 11; +is min-triangle-sum([[7], [3,6], [6,4,9], [5,1,7,2]]), 15; + +sub min-triangle-sum(@triangle) +{ + my @a = (flat roundrobin @triangle[1]<>, @triangle[0]<>).rotor(2 => -1); + my $head = @a.shift.sum; + my $tail = @a.pop.sum; + my @mid = map -> $a, $b { $a.sum min $b.sum }, @a; + shift @triangle; + @triangle[0] = [$head, |@mid, $tail]; + min-triangle-sum(@triangle) if @triangle > 1; + @triangle[0].min; +} |
