diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2025-01-16 23:50:44 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-16 23:50:44 +0000 |
| commit | dc7ec73a97cb4f1f09721570cf4fd035bfa09046 (patch) | |
| tree | f1e3b8f9b2f774b7d5fea3c65090ab1a2138f455 | |
| parent | c3025f506a1ade97522b381e51448dd6fc5833a9 (diff) | |
| parent | cc17f0c3810e0c19b1b048b90c397482c6ce7513 (diff) | |
| download | perlweeklychallenge-club-dc7ec73a97cb4f1f09721570cf4fd035bfa09046.tar.gz perlweeklychallenge-club-dc7ec73a97cb4f1f09721570cf4fd035bfa09046.tar.bz2 perlweeklychallenge-club-dc7ec73a97cb4f1f09721570cf4fd035bfa09046.zip | |
Merge pull request #11453 from andemark/challenge-304
Challenge 304 Solutions (Raku)
| -rw-r--r-- | challenge-304/mark-anderson/raku/ch-1.raku | 17 | ||||
| -rw-r--r-- | challenge-304/mark-anderson/raku/ch-2.raku | 12 |
2 files changed, 29 insertions, 0 deletions
diff --git a/challenge-304/mark-anderson/raku/ch-1.raku b/challenge-304/mark-anderson/raku/ch-1.raku new file mode 100644 index 0000000000..0ac6806bad --- /dev/null +++ b/challenge-304/mark-anderson/raku/ch-1.raku @@ -0,0 +1,17 @@ +#!/usr/bin/env raku +use Test; + +ok arrange-binary([1,0,0,0,1], 1); +nok arrange-binary([1,0,0,0,1], 2); +nok arrange-binary([0,0,0,1,0,0,0,0,1,0,0], 4); +nok arrange-binary([0,0,0,1,0,0,0,1,0,0,0], 4); +ok arrange-binary([0,0,0,1,0,0,0,1,0,0,0], 3); +nok arrange-binary([0,0,1,0,0,0,0,1,0,0,0], 3); + +sub arrange-binary(@ints, $n) +{ + return False unless @ints.join ~~ m:g/00/ >= $n; + my $even = @ints.first(1,:k) %% 2; + my @mask = (flat $even ?? (0,1) xx * !! (1,0) xx *).head(@ints); + return not @mask.join.parse-base(2) +& @ints.join.parse-base(2) +} diff --git a/challenge-304/mark-anderson/raku/ch-2.raku b/challenge-304/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..6e59dcbeb7 --- /dev/null +++ b/challenge-304/mark-anderson/raku/ch-2.raku @@ -0,0 +1,12 @@ +#!/usr/bin/env raku +use Test; + +is max-avg([1,12,-5,-6,50,3], 4), 12.75; +is max-avg([5], 1), 5; + +sub prefix:<x̄>(@list) { @list.sum / @list.elems } + +sub max-avg(@ints, $n) +{ + @ints.rotor($n => 1-$n).map(x̄ *).max +} |
