diff options
| author | Mark Anderson <mark@andemark.io> | 2025-10-13 08:23:37 +0000 |
|---|---|---|
| committer | Mark Anderson <mark@andemark.io> | 2025-10-13 08:23:37 +0000 |
| commit | 6a99fc999d3aa6b986120bec0dba1bb7e8d84db3 (patch) | |
| tree | abf11e6814a615e3a30af5ecbf2884037474080e | |
| parent | 35a27e16cb743acd46c1f315766530dc991ac587 (diff) | |
| download | perlweeklychallenge-club-6a99fc999d3aa6b986120bec0dba1bb7e8d84db3.tar.gz perlweeklychallenge-club-6a99fc999d3aa6b986120bec0dba1bb7e8d84db3.tar.bz2 perlweeklychallenge-club-6a99fc999d3aa6b986120bec0dba1bb7e8d84db3.zip | |
Challenge 343 Solutions (Raku)
| -rw-r--r-- | challenge-343/mark-anderson/raku/ch-1.raku | 33 | ||||
| -rw-r--r-- | challenge-343/mark-anderson/raku/ch-2.raku | 85 |
2 files changed, 118 insertions, 0 deletions
diff --git a/challenge-343/mark-anderson/raku/ch-1.raku b/challenge-343/mark-anderson/raku/ch-1.raku new file mode 100644 index 0000000000..653c6bfaa7 --- /dev/null +++ b/challenge-343/mark-anderson/raku/ch-1.raku @@ -0,0 +1,33 @@ +#!/usr/bin/env raku +use Test; + +is zero-friend(4, 2, -1, 3, -2), 1; +is zero-friend(-5, 5, -3, 3, -1, 1), 1; +is zero-friend(7, -3, 0, 2, -8), 0; +is zero-friend(-2, -5, -1, -8), 1; +is zero-friend(-2, 2, -4, 4, -1, 1), 1; + +is zero-friend-alt(4, 2, -1, 3, -2), -1; +is zero-friend-alt(-5, 5, -3, 3, -1, 1), 1; +is zero-friend-alt(7, -3, 0, 2, -8), 0; +is zero-friend-alt(-2, -5, -1, -8), -1; +is zero-friend-alt(-2, 2, -4, 4, -1, 1), 1; + +sub zero-friend(+@nums) +{ + @nums.classify({ .sign }, :as{ .abs }) + .values + .flat(:hammer) + .min +} + +# I think this alternate solution matches the instructions better. +# I meant to email Mohammad for clarification before the deadline +# but I forgot. + +sub zero-friend-alt(+@nums) +{ + my %c := { -1 => [], 0 => [], 1 => [] } + %c = @nums.classify: { .sign }, :into(%c); + (%c<-1>.max, %c<0>.min, %c<1>.min).sort({ .abs, -.sign }).head +} diff --git a/challenge-343/mark-anderson/raku/ch-2.raku b/challenge-343/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..f5077b81b2 --- /dev/null +++ b/challenge-343/mark-anderson/raku/ch-2.raku @@ -0,0 +1,85 @@ +#!/usr/bin/env raku +use Test; + +is champion-team([0,1,1], + [0,0,1], + [0,0,0]), 0; + +is champion-team([0,1,0,0], + [0,0,0,0], + [1,1,0,0], + [1,1,1,0]), 3; + +is champion-team([0,1,0,1], + [0,0,1,1], + [1,0,0,0], + [0,0,1,0]), 0; + +is champion-team([0,1,1], + [0,0,0], + [0,1,0]), 0; + +is champion-team([0,0,0,0,0], + [1,0,0,0,0], + [1,1,0,1,1], + [1,1,0,0,0], + [1,1,0,1,0]), 2; + +is champion-team([0,0,1,1,1,1,1,0,1,0,0,1,0,0,1,1,0,1,1,0,1,0,1,1,1,1,1,0,1,0,0,1,1,1,1,1,1,1,0,0,0,1,0,0,1,1,1,1,0,0], + [1,0,1,1,0,1,0,1,1,1,0,0,1,1,1,0,1,1,0,1,0,0,1,0,1,1,0,1,1,0,0,0,0,1,0,0,1,1,0,0,0,0,1,0,1,0,0,1,1,1], + [0,0,0,1,1,0,0,0,0,0,1,1,1,0,1,1,0,0,0,1,1,0,0,0,1,0,0,1,0,0,0,0,1,1,1,0,0,1,1,1,0,1,1,1,0,1,0,0,1,1], + [0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,0,0,0,1,0,0,0,0,1,1,1,1,1,0,1,0,1,0,0,0], + [0,1,0,1,0,1,1,0,1,1,1,1,0,1,1,1,1,1,0,1,1,0,0,0,1,0,1,0,1,1,1,0,0,1,0,0,0,0,1,1,1,0,1,0,0,1,1,1,1,1], + [0,0,1,1,0,0,1,1,0,0,0,0,0,1,0,0,1,0,0,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,1,1,0,0,1,1,1,1], + [0,1,1,0,0,0,0,1,1,0,1,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,1,0,0,1,1,1,0,1,0], + [1,0,1,0,1,0,0,0,0,1,0,1,0,1,0,0,1,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,0,0,0,0,1,1,1,1,0,0,1,0,1,0,0,1,0], + [0,0,1,1,0,1,0,1,0,1,1,0,0,1,1,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,0,1,1,0,1,1,1,1,1,0,1,0,1,1,1,0,0,0,1,0], + [1,0,1,1,0,1,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,1,1,1,0,1,0,0,0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,0], + [1,1,0,0,0,1,0,1,0,1,0,1,1,1,1,0,0,0,0,0,0,1,0,1,0,0,0,1,1,0,0,1,1,1,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,1], + [0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1,0,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0], + [1,0,0,1,1,1,1,1,1,1,0,1,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,1], + [1,0,1,1,0,0,1,0,0,1,0,1,1,0,0,1,0,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1], + [0,0,0,0,0,1,0,1,0,1,0,1,1,1,0,1,1,1,0,1,1,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,1,1,0,0,1,1,0,0,0,1,0,1], + [0,1,0,1,0,1,0,1,0,1,1,0,0,0,0,0,1,0,0,1,0,1,0,0,1,1,0,1,0,1,1,1,1,0,1,1,0,0,0,1,0,1,1,0,0,0,0,1,0,1], + [1,0,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,0,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,0,1,1,0,0,0,1,0,0,1], + [0,0,1,1,0,1,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,1,0,0,1,1,0,1,1,1,1,1,0,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1], + [0,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,0,0,0,1,1,1,0,1,1,1,1,0,1,0,1,0,1,0,1,0,0,0,1,1,0,1,0,0,1,1], + [1,0,0,1,0,0,1,1,0,1,1,1,0,1,0,0,1,0,0,0,1,1,0,0,1,1,0,0,1,1,1,0,1,1,1,1,0,1,1,0,1,1,1,1,1,1,0,1,0,0], + [0,1,0,0,0,0,1,1,0,0,1,0,0,1,0,1,1,1,1,0,0,0,0,0,0,1,0,1,0,0,0,1,1,1,0,1,0,0,0,1,1,1,1,0,0,0,0,1,1,1], + [1,1,1,0,1,1,1,1,1,0,0,0,1,1,0,0,1,0,1,0,1,0,0,0,1,1,1,0,1,0,1,0,0,1,0,1,1,0,1,1,1,0,1,1,0,1,0,0,1,0], + [0,0,1,0,1,1,0,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,0,1,0,0,0,1,1,1,0,1,0,0,1,1,0,1,0,1,1,1,0,1,1,1,0,1,1,0], + [0,1,1,0,1,0,0,0,0,1,0,1,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,1,0,1,0,0,1,1,1,0], + [0,0,0,0,0,1,0,1,1,1,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,0,1,0,1,0,0,1,0], + [0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,1,1,0,0,1,0,1,0,0,0,1,0,0,0,1,1,0,0,1], + [0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,0,1,1,0,0,0,1,0,1,0,1,0,1,1,0,1,0,0,0,0,0,1], + [1,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,1,0,0,0,1,0,0,1,1,0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1], + [0,0,1,0,0,0,1,1,0,0,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,1,1,1,1,0,0,0,1,1,0], + [1,1,1,1,0,1,1,1,1,0,1,0,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,1,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,1,1,0,1,1], + [1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,0,1,0,0,0,1,0,1,1,1,0,0,1,1,1,0,1,0,0,1,1,0,0,0,1,1,0,1,1,0,1,0,0,0,0], + [0,1,1,1,1,1,0,0,0,0,0,0,1,1,1,0,1,0,1,1,0,1,0,1,1,0,1,1,1,1,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,1,1], + [0,1,0,1,1,1,0,0,0,1,0,0,1,1,1,0,0,1,0,0,0,1,1,0,1,0,1,0,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0], + [0,0,0,0,0,1,1,1,1,1,0,1,1,0,1,1,0,0,1,0,0,0,1,1,1,1,1,0,0,1,1,1,1,0,0,0,0,1,1,1,0,0,0,1,1,1,1,1,1,1], + [0,1,0,1,1,1,0,1,0,1,1,1,1,0,1,0,0,0,0,0,1,1,0,1,1,1,0,1,0,1,0,1,1,1,0,1,0,1,1,0,0,1,1,1,1,1,1,0,1,1], + [0,1,1,1,1,0,0,1,0,1,0,1,1,0,1,0,1,1,1,0,0,0,0,0,1,0,1,1,1,1,0,0,0,1,0,0,0,0,1,0,1,0,1,1,0,1,1,1,1,1], + [0,0,1,1,1,0,1,1,0,1,1,1,0,0,0,1,0,1,0,1,1,0,1,1,1,1,0,1,0,1,1,1,0,1,1,1,0,1,0,0,1,0,0,1,1,1,1,1,1,0], + [0,0,0,1,1,0,1,0,0,0,0,0,1,0,1,1,1,1,1,0,1,1,0,1,0,0,1,0,0,0,1,1,0,0,0,1,0,0,1,0,1,1,1,1,1,1,1,1,1,1], + [1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,1,0,0,0,1,0,1,1,0,1,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,0,1,1,0,1,0,0,0,0], + [1,1,0,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,1,1,0,0,0,0,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,0,1,0,1,1,0,0,0,1,1,0], + [1,1,1,0,0,1,1,0,0,1,0,1,1,0,1,1,1,0,1,0,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0], + [0,1,0,0,1,1,0,1,1,1,1,0,1,0,1,0,0,0,1,0,0,1,0,0,0,0,0,1,0,1,1,0,1,1,0,1,1,0,1,1,0,0,0,0,0,1,1,1,0,1], + [1,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,1,0,1,1,1,0,0,1,0,0,0,1,1,0,1,0,1,1,1,1,0], + [1,1,0,1,1,0,1,0,0,0,1,1,1,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0], + [0,0,1,0,1,1,0,1,0,0,1,0,0,0,1,1,1,1,1,0,1,1,0,1,1,1,1,0,1,1,1,1,1,0,0,1,0,0,1,1,0,1,1,1,0,1,1,0,0,0], + [0,1,0,1,0,1,0,0,1,0,1,0,1,0,1,1,1,1,0,0,1,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0], + [0,1,1,0,0,0,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,0,0,0,0,1,1,1,0,0,1,0,1,0,1,0,1], + [0,0,1,1,0,0,1,1,1,0,0,1,1,0,0,0,1,1,1,0,0,1,0,0,1,1,1,0,0,1,1,0,0,0,1,0,0,0,1,0,1,0,0,0,1,1,0,0,0,1], + [1,0,0,1,0,0,0,0,0,1,1,0,1,1,1,1,1,1,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,1,1,1,1,1,0,0], + [1,0,0,1,0,0,1,1,1,1,0,1,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,1,0,1,0,1,0,0,0,1,0,1,1,1,0,1,1,1,1,0,0,1,0]), 26; + +sub champion-team(+@m) +{ + my %h = @m.map: { $++ => .grep(1, :k) } + %h .= classify: { .value.elems } + %h = %h.max.value; + %h.keys>>.Int (-) %h.values.flat(:hammer) +} |
