aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-12-27 12:53:53 +0000
committerGitHub <noreply@github.com>2022-12-27 12:53:53 +0000
commit314a0574b3d1aab8801ad0959d9e1d26ad9bef9c (patch)
tree48cf773d810305abd5a937ae758246d4a4dde13c
parentb51de0ed185ef6905a5c812abdb3917713a308f4 (diff)
parentc1629a287d53018f2126b4bd62a3ec3c73e89dc5 (diff)
downloadperlweeklychallenge-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.raku13
-rw-r--r--challenge-197/mark-anderson/raku/ch-2.raku15
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)
+}