aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-01-28 10:20:48 +0000
committerGitHub <noreply@github.com>2025-01-28 10:20:48 +0000
commitdfdf6d430dc0aa2039ce4be26e2b8a6b6e9bdf98 (patch)
treea681e83f32455be07e0cec9915b592a75057f5e2
parent906bb690f8e1d091ac358c4ac77818bf879144c8 (diff)
parenta7190daed0a90d093e8eb88af2af68d29a971bd6 (diff)
downloadperlweeklychallenge-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.raku10
-rw-r--r--challenge-306/mark-anderson/raku/ch-2.raku27
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
+}