From 4cfb16b045b66c7baead7ae2fd350e2fedbffa1e Mon Sep 17 00:00:00 2001 From: Mark Anderson Date: Sat, 18 Jan 2025 09:44:13 +0000 Subject: ch-1.raku do-over --- challenge-304/mark-anderson/raku/ch-1.raku | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/challenge-304/mark-anderson/raku/ch-1.raku b/challenge-304/mark-anderson/raku/ch-1.raku index 0ac6806bad..2d64ed2b39 100644 --- a/challenge-304/mark-anderson/raku/ch-1.raku +++ b/challenge-304/mark-anderson/raku/ch-1.raku @@ -3,15 +3,24 @@ 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); + +# E Choroba tests +ok arrange-binary([1,0,0], 1); +ok arrange-binary([0,0,1], 1); +nok arrange-binary([1,0,0,0,0,1], 2); +ok arrange-binary([1,0,0,0,0,0,1], 2); +ok arrange-binary([0,0,0,0,0], 3); +nok arrange-binary([0,0,0,0,0], 4); 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) + my $str = [~] @ints; + + return False if $str ~~ m:g/11/; + + return .elems >= $n given do loop + { + last unless $str ~~ s/ 0 /1/; + 1 + } } -- cgit From 37f25295d6d2f6e5246516d0683bc8eccd1be806 Mon Sep 17 00:00:00 2001 From: Mark Anderson Date: Sat, 18 Jan 2025 09:53:59 +0000 Subject: ch-1.raku do-over --- challenge-304/mark-anderson/raku/ch-1.raku | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/challenge-304/mark-anderson/raku/ch-1.raku b/challenge-304/mark-anderson/raku/ch-1.raku index 2d64ed2b39..1c8e523a8d 100644 --- a/challenge-304/mark-anderson/raku/ch-1.raku +++ b/challenge-304/mark-anderson/raku/ch-1.raku @@ -16,7 +16,7 @@ sub arrange-binary(@ints, $n) { my $str = [~] @ints; - return False if $str ~~ m:g/11/; + return False if $str ~~ /11/; return .elems >= $n given do loop { -- cgit