diff options
| author | Mark <53903062+andemark@users.noreply.github.com> | 2022-12-26 10:23:34 +0000 |
|---|---|---|
| committer | Mark <53903062+andemark@users.noreply.github.com> | 2022-12-26 10:23:34 +0000 |
| commit | 5e53ede2741debff8e09453e241c823979f0ea16 (patch) | |
| tree | c87e1d349bf800814b81384241e4efcae9f0b436 /challenge-197 | |
| parent | 63fb76188e132564e50feefd2d9d5b8491568948 (diff) | |
| download | perlweeklychallenge-club-5e53ede2741debff8e09453e241c823979f0ea16.tar.gz perlweeklychallenge-club-5e53ede2741debff8e09453e241c823979f0ea16.tar.bz2 perlweeklychallenge-club-5e53ede2741debff8e09453e241c823979f0ea16.zip | |
Challenge 197 Solutions (Raku)
Diffstat (limited to 'challenge-197')
| -rw-r--r-- | challenge-197/mark-anderson/raku/ch-1.raku | 13 | ||||
| -rw-r--r-- | challenge-197/mark-anderson/raku/ch-2.raku | 17 |
2 files changed, 30 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..01ad3d233f --- /dev/null +++ b/challenge-197/mark-anderson/raku/ch-2.raku @@ -0,0 +1,17 @@ +#!/usr/bin/env raku +use Test; + +# My output might be different but I think it's still a wiggle sort. + +is-deeply wiggle-sort(1,5,1,1,6,4), (1,4,1,5,1,6); +is-deeply wiggle-sort(1,3,2,2,3,1), (1,2,1,3,2,3); +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), (1,5,2,6,3,7,4); +is-deeply wiggle-sort(1,2,3,4,5,6,7,8), (1,5,2,6,3,7,4,8); + +sub wiggle-sort(*@a) +{ + @a .= sort; + my $d = @a / 2; + flat roundrobin @a.head($d.ceiling), @a.tail($d.floor); +} |
