diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-12-27 12:53:53 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-12-27 12:53:53 +0000 |
| commit | 314a0574b3d1aab8801ad0959d9e1d26ad9bef9c (patch) | |
| tree | 48cf773d810305abd5a937ae758246d4a4dde13c | |
| parent | b51de0ed185ef6905a5c812abdb3917713a308f4 (diff) | |
| parent | c1629a287d53018f2126b4bd62a3ec3c73e89dc5 (diff) | |
| download | perlweeklychallenge-club-314a0574b3d1aab8801ad0959d9e1d26ad9bef9c.tar.gz perlweeklychallenge-club-314a0574b3d1aab8801ad0959d9e1d26ad9bef9c.tar.bz2 perlweeklychallenge-club-314a0574b3d1aab8801ad0959d9e1d26ad9bef9c.zip | |
Merge pull request #7310 from andemark/branch-for-challenge-197
Challenge 197 Solutions (Raku)
| -rw-r--r-- | challenge-197/mark-anderson/raku/ch-1.raku | 13 | ||||
| -rw-r--r-- | challenge-197/mark-anderson/raku/ch-2.raku | 15 |
2 files changed, 28 insertions, 0 deletions
diff --git a/challenge-197/mark-anderson/raku/ch-1.raku b/challenge-197/mark-anderson/raku/ch-1.raku new file mode 100644 index 0000000000..07d7e9cfb5 --- /dev/null +++ b/challenge-197/mark-anderson/raku/ch-1.raku @@ -0,0 +1,13 @@ +#!/usr/bin/env raku +use Test; + +is-deeply move-zero(1,0,3,0,0,5), (1,3,5,0,0,0); +is-deeply move-zero(1,6,4), (1,6,4); +is-deeply move-zero(0,1,0,2,0), (1,2,0,0,0); + +sub move-zero(*@arr) +{ + my $c := classify { $_ == 0 ?? 'zeros' !! 'non-zeros' }, @arr; + $c<non-zeros>.append: flat $c<zeros> if $c<zeros>; + $c<non-zeros>.List +} diff --git a/challenge-197/mark-anderson/raku/ch-2.raku b/challenge-197/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..0aa4b6e32f --- /dev/null +++ b/challenge-197/mark-anderson/raku/ch-2.raku @@ -0,0 +1,15 @@ +#!/usr/bin/env raku +use Test; + +is-deeply wiggle-sort(1,5,1,1,6,4), (1,6,1,5,1,4); +is-deeply wiggle-sort(1,3,2,2,3,1), (2,3,1,3,1,2); +is-deeply wiggle-sort(1,1,1,2,2,2), (1,2,1,2,1,2); +is-deeply wiggle-sort(1,2,3,4,5,6,7), (4,7,3,6,2,5,1); +is-deeply wiggle-sort(1,2,3,4,5,6,7,8), (4,8,3,7,2,6,1,5); + +sub wiggle-sort(*@a) +{ + @a .= sort: -*; + my $d = @a / 2; + flat roundrobin @a.tail($d.ceiling), @a.head($d.floor) +} |
