From b1c8a57df05b18c360fc9820970d6c57302790f9 Mon Sep 17 00:00:00 2001 From: Mark Anderson Date: Thu, 16 Jan 2025 23:31:57 +0000 Subject: Challenge 304 Solutions (Raku) --- challenge-304/mark-anderson/raku/ch-1.raku | 17 +++++++++++++++++ challenge-304/mark-anderson/raku/ch-2.raku | 13 +++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 challenge-304/mark-anderson/raku/ch-1.raku create mode 100644 challenge-304/mark-anderson/raku/ch-2.raku 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..378a666976 --- /dev/null +++ b/challenge-304/mark-anderson/raku/ch-2.raku @@ -0,0 +1,13 @@ +#!/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:(@list) { @list.sum / @list.elems } + +sub max-avg(@ints, $n) +{ + @ints.rotor($n => 1-$n).map(x̄ *).max + +} -- cgit From cc17f0c3810e0c19b1b048b90c397482c6ce7513 Mon Sep 17 00:00:00 2001 From: Mark Anderson Date: Thu, 16 Jan 2025 23:38:07 +0000 Subject: Challenge 304 Solutions (Raku) --- challenge-304/mark-anderson/raku/ch-2.raku | 1 - 1 file changed, 1 deletion(-) diff --git a/challenge-304/mark-anderson/raku/ch-2.raku b/challenge-304/mark-anderson/raku/ch-2.raku index 378a666976..6e59dcbeb7 100644 --- a/challenge-304/mark-anderson/raku/ch-2.raku +++ b/challenge-304/mark-anderson/raku/ch-2.raku @@ -9,5 +9,4 @@ sub prefix:(@list) { @list.sum / @list.elems } sub max-avg(@ints, $n) { @ints.rotor($n => 1-$n).map(x̄ *).max - } -- cgit