diff options
| author | Mark A <andemark@a-iot1t.uch.ad.pvt> | 2021-02-17 03:27:22 -0700 |
|---|---|---|
| committer | Mark A <andemark@a-iot1t.uch.ad.pvt> | 2021-02-17 03:27:22 -0700 |
| commit | 889a7b2fefef365c9d80557c482bc3e45379312f (patch) | |
| tree | 64a127b6ead51cb2c14e93f57d234140ef557627 | |
| parent | e9853f8e34bf45f04de827b626cc774ae05b8c8f (diff) | |
| download | perlweeklychallenge-club-889a7b2fefef365c9d80557c482bc3e45379312f.tar.gz perlweeklychallenge-club-889a7b2fefef365c9d80557c482bc3e45379312f.tar.bz2 perlweeklychallenge-club-889a7b2fefef365c9d80557c482bc3e45379312f.zip | |
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; +} |
