diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2025-01-28 10:20:48 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-28 10:20:48 +0000 |
| commit | dfdf6d430dc0aa2039ce4be26e2b8a6b6e9bdf98 (patch) | |
| tree | a681e83f32455be07e0cec9915b592a75057f5e2 | |
| parent | 906bb690f8e1d091ac358c4ac77818bf879144c8 (diff) | |
| parent | a7190daed0a90d093e8eb88af2af68d29a971bd6 (diff) | |
| download | perlweeklychallenge-club-dfdf6d430dc0aa2039ce4be26e2b8a6b6e9bdf98.tar.gz perlweeklychallenge-club-dfdf6d430dc0aa2039ce4be26e2b8a6b6e9bdf98.tar.bz2 perlweeklychallenge-club-dfdf6d430dc0aa2039ce4be26e2b8a6b6e9bdf98.zip | |
Merge pull request #11495 from andemark/challenge-306
Challenge 306 Solutions (Raku)
| -rw-r--r-- | challenge-306/mark-anderson/raku/ch-1.raku | 10 | ||||
| -rw-r--r-- | challenge-306/mark-anderson/raku/ch-2.raku | 27 |
2 files changed, 37 insertions, 0 deletions
diff --git a/challenge-306/mark-anderson/raku/ch-1.raku b/challenge-306/mark-anderson/raku/ch-1.raku new file mode 100644 index 0000000000..4958c9d823 --- /dev/null +++ b/challenge-306/mark-anderson/raku/ch-1.raku @@ -0,0 +1,10 @@ +#!/usr/bin/env raku +use Test; + +is odd-sum(2,5,3,6,4), 77; +is odd-sum(1,3), 4; + +sub odd-sum(+@ints) +{ + sum flat (1,3...@ints.elems).map(-> $n { @ints.rotor($n => -$n+1) }) +} diff --git a/challenge-306/mark-anderson/raku/ch-2.raku b/challenge-306/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..ee0213744e --- /dev/null +++ b/challenge-306/mark-anderson/raku/ch-2.raku @@ -0,0 +1,27 @@ +#!/usr/bin/env raku +use Test; + +is last-element(3,8,5,2,9,2), 1; +is last-element(3,2,5), 0; + +sub last-element(+@ints) +{ + my $bag = @ints.BagHash; + + while $bag.elems > 1 + { + my $a = $bag.max.key; + my $even = $bag{$a} %% 2; + + $bag{$a} = 0; + + unless $even + { + my $b = $bag.max.key; + $bag{$b}--; + $bag{$a-$b}++ + } + } + + $bag.values.head %% 2 ?? 0 !! $bag.keys.head +} |
