diff options
| author | Mark Anderson <mark@andemark.io> | 2025-06-15 17:27:06 +0000 |
|---|---|---|
| committer | Mark Anderson <mark@andemark.io> | 2025-06-15 17:27:06 +0000 |
| commit | 7278ab2f4862abe28dde25e1853dc060eb78c14f (patch) | |
| tree | 3855011320650fe821dbbbce6c2b2203cb4900a4 | |
| parent | e6cb523f26f177d8a23cb1f7470dda76925cdb0b (diff) | |
| download | perlweeklychallenge-club-7278ab2f4862abe28dde25e1853dc060eb78c14f.tar.gz perlweeklychallenge-club-7278ab2f4862abe28dde25e1853dc060eb78c14f.tar.bz2 perlweeklychallenge-club-7278ab2f4862abe28dde25e1853dc060eb78c14f.zip | |
ch-1.raku do-over
| -rw-r--r-- | challenge-325/mark-anderson/raku/ch-1.raku | 10 | ||||
| -rw-r--r-- | challenge-325/mark-anderson/raku/ch-2.raku | 7 |
2 files changed, 9 insertions, 8 deletions
diff --git a/challenge-325/mark-anderson/raku/ch-1.raku b/challenge-325/mark-anderson/raku/ch-1.raku index 0543ae9985..362cf118b3 100644 --- a/challenge-325/mark-anderson/raku/ch-1.raku +++ b/challenge-325/mark-anderson/raku/ch-1.raku @@ -1,13 +1,17 @@ #!/usr/bin/env raku +use v6.e.PREVIEW; use Test; is consecutive-ones(0,1,1,0,1,1,1), 3; is consecutive-ones(0,0,0,0), 0; is consecutive-ones(1,0,1,0,1,1), 2; -sub consecutive-ones(+@b) +multi consecutive-ones(+@b where .head == 0) { - my $m = @b.join.match(/1+/, :g) or return 0; - $m.max.chars + sum max 0, max @b.snip(flat (0,1) xx *)[1,3...*] } +multi consecutive-ones(+@b) +{ + .elems given max @b.snip(flat (1,0) xx *)[0,2...*] +} diff --git a/challenge-325/mark-anderson/raku/ch-2.raku b/challenge-325/mark-anderson/raku/ch-2.raku index 0cc6eaab34..bd27578d0b 100644 --- a/challenge-325/mark-anderson/raku/ch-2.raku +++ b/challenge-325/mark-anderson/raku/ch-2.raku @@ -5,10 +5,7 @@ is-deeply final-price(8,4,6,2,3), (4,2,4,2,3); is-deeply final-price(1,2,3,4,5), (1,2,3,4,5); is-deeply final-price(7,1,1,5), (6,0,1,5); -sub final-price(+@prices) +sub final-price(+@p) { - @prices.pairs - .map({ quietly .value - @prices[.key+1..*] - .first(* <= .value) - }) + @p.pairs.map({ quietly .value - @p[.key+1..*].first(* <= .value) }) } |
