diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2020-03-08 19:49:41 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-03-08 19:49:41 +0000 |
| commit | dd58ec7d90a4a13a8e1725bbef8a9bd5f2cf2a38 (patch) | |
| tree | 6238bf92bef350aed8d862290b9773187b2be69c /challenge-050 | |
| parent | 8d51e1e1dfd356fb0dee3f7aeaa8433c329f600e (diff) | |
| parent | 6a5221c217f0774a0a0c58e233c5c76faab8a458 (diff) | |
| download | perlweeklychallenge-club-dd58ec7d90a4a13a8e1725bbef8a9bd5f2cf2a38.tar.gz perlweeklychallenge-club-dd58ec7d90a4a13a8e1725bbef8a9bd5f2cf2a38.tar.bz2 perlweeklychallenge-club-dd58ec7d90a4a13a8e1725bbef8a9bd5f2cf2a38.zip | |
Merge pull request #1366 from andemark/branch-for-challenge-050
rewrote ch-2.p6
Diffstat (limited to 'challenge-050')
| -rw-r--r-- | challenge-050/mark-anderson/raku/ch-1.p6 | 30 | ||||
| -rw-r--r-- | challenge-050/mark-anderson/raku/ch-2.p6 | 27 |
2 files changed, 42 insertions, 15 deletions
diff --git a/challenge-050/mark-anderson/raku/ch-1.p6 b/challenge-050/mark-anderson/raku/ch-1.p6 index d80ee77243..63b1e5d6c2 100644 --- a/challenge-050/mark-anderson/raku/ch-1.p6 +++ b/challenge-050/mark-anderson/raku/ch-1.p6 @@ -2,20 +2,30 @@ use Test; -plan 3; +plan 5; -is-deeply merge([[2,7], [3,9], [10,12], [15,19], [18,22]]), - [[2,9], [10,12], [15,22]]; +is-deeply merge([[1, 2], ]), + [[1, 2], ], + "[[1, 2], ] = [[1, 2], ]"; -is-deeply merge([[1,3], [5,9], [7,8], [3,4]]), - [[1,4], [5,9]]; +is-deeply merge([[2, 7], [3, 9], [10, 12], [15, 19], [18, 22]]), + [[2, 9], [10, 12], [15, 22]], + "[[2, 7], [3, 9], [10, 12], [15, 19], [18, 22]] = [[2, 9], [10, 12], [15, 22]]"; -is-deeply merge([[1,2], [5,6], [5,5], [2,5], [7,8], [3,3]]), - [[1,6], [7,8]]; +is-deeply merge([[1, 3], [5, 9], [7, 8], [3, 4]]), + [[1, 4], [5, 9]], + "[[1, 3], [5, 9], [7, 8], [3, 4]] = [[1, 4], [5, 9]]"; + +is-deeply merge([[1, 2], [5, 6], [5, 5], [2, 5], [7, 8], [3, 3]]), + [[1, 6], [7, 8]], + "[[1, 2], [5, 6], [5, 5], [2, 5], [7, 8], [3, 3]] = [[1, 6], [7, 8]]"; + +is-deeply merge([[1, 3], [5, 7], [-1, 7]]), + [[-1, 7], ], + "[[1, 3], [5, 7], [-1, 7]] = [[-1, 7], ]"; sub merge(@array) { - @array = @array.sort({ $^a[0] <=> $^b[0] || - $^a[1] <=> $^b[1] }); + @array = @array.sort({ $^a[0] <=> $^b[0] }); my @merged = @array.shift; @@ -23,7 +33,7 @@ sub merge(@array) { my @m = @merged.pop.flat; my @a = @array.shift.flat; - if (@m[1] >= @a[0]) { + if @m[1] >= @a[0] { @merged.push([@m[0], (@a[1], @m[1]).max]); } diff --git a/challenge-050/mark-anderson/raku/ch-2.p6 b/challenge-050/mark-anderson/raku/ch-2.p6 index 678ecc2d99..28e02c8c9e 100644 --- a/challenge-050/mark-anderson/raku/ch-2.p6 +++ b/challenge-050/mark-anderson/raku/ch-2.p6 @@ -1,8 +1,25 @@ #!/usr/bin/env perl6 -my @L = [2, 6, 1, 3]; +use Test; -@L ==> -grep { $_ < @L.elems } ==> # skip numbers that aren't possible -first { @L.grep(* > $_).elems == $_ } ==> # I'm trusting there can only be 1 -say(); +plan 7; + +is noble((1 .. 8)), 4, "(1 .. 8) = 4"; +is noble((1, 6, 3, 2)), 2, "(1, 6, 3, 2) = 2"; +is noble((3, 5, 5, 5, 5)), (), "(3, 5, 5, 5, 5) = ()"; +is noble((4, 5, 5, 5, 5)), 4, "(4, 5, 5, 5, 5) = 4"; +is noble((1, 5, 5, 2, 3, 6)), 3, "(1, 5, 5, 2, 3, 6) = 3"; +is noble((1, 5, 2, 6, 7, 4)), (), "(1, 5, 2, 6, 7, 4) = ()"; +is noble((1, 2, 4, 5, 6, 7, 8, 9, 22)), 5, "(1, 2, 4, 5, 6, 7, 8, 9, 22) = 5"; + +sub noble(@L is copy) { + @L = @L.sort; + + for @L.kv -> $k, $v { + my @rest = @L[$k+1 .. @L.end]; + last if $v > @rest; + return $v if @rest.grep(* > $v) == $v; + } + + return (); +} |
