aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-10-15 19:49:52 +0100
committerGitHub <noreply@github.com>2025-10-15 19:49:52 +0100
commit45577ff14aa676cfb6a63118a73d61e167ae417a (patch)
treef998ea5351f9f9f6f63508699b95b19dd1c519f7
parent7e9b2dbb5e5fbdfce954cddb9da3f9373bac0cd7 (diff)
parent6ce748d692e4d1f038bb81510d6a1f63eba8f55e (diff)
downloadperlweeklychallenge-club-45577ff14aa676cfb6a63118a73d61e167ae417a.tar.gz
perlweeklychallenge-club-45577ff14aa676cfb6a63118a73d61e167ae417a.tar.bz2
perlweeklychallenge-club-45577ff14aa676cfb6a63118a73d61e167ae417a.zip
Merge pull request #12857 from seaker/master
challenge 343, raku solutions
-rwxr-xr-xchallenge-343/feng-chang/raku/ch-1.raku5
-rwxr-xr-xchallenge-343/feng-chang/raku/ch-2.raku12
-rwxr-xr-xchallenge-343/feng-chang/raku/test.raku29
3 files changed, 46 insertions, 0 deletions
diff --git a/challenge-343/feng-chang/raku/ch-1.raku b/challenge-343/feng-chang/raku/ch-1.raku
new file mode 100755
index 0000000000..128916b0b3
--- /dev/null
+++ b/challenge-343/feng-chang/raku/ch-1.raku
@@ -0,0 +1,5 @@
+#!/bin/env raku
+
+unit sub MAIN(*@ints);
+
+put @ints.map(*.abs).min;
diff --git a/challenge-343/feng-chang/raku/ch-2.raku b/challenge-343/feng-chang/raku/ch-2.raku
new file mode 100755
index 0000000000..e22aa07b89
--- /dev/null
+++ b/challenge-343/feng-chang/raku/ch-2.raku
@@ -0,0 +1,12 @@
+#!/bin/env raku
+
+unit sub MAIN(Str:D $arr_str);
+
+use MONKEY-SEE-NO-EVAL;
+
+my @a = EVAL $arr_str;
+put 'Team ', do with (^+@a).map({ @a[$_].sum }).max(:k) -> @m {
+ +@m == 1 ?? @m[0] !! do with (^+@m).map({ @a[$_][@m].sum }).max(:k) -> @n {
+ +@n == 1 ?? @m[@n[0]] !! "{@n.join(',')} tie"
+ }
+};
diff --git a/challenge-343/feng-chang/raku/test.raku b/challenge-343/feng-chang/raku/test.raku
new file mode 100755
index 0000000000..e205503864
--- /dev/null
+++ b/challenge-343/feng-chang/raku/test.raku
@@ -0,0 +1,29 @@
+#!/bin/env raku
+
+# The Weekly Challenge 343
+use Test;
+
+sub pwc-test(Str:D $script, Bool :$deeply? = False, *@input) {
+ my ($expect, $assertion) = @input.splice(*-2, 2);
+ my $p = run $script, |@input, :out;
+ if $deeply {
+ is-deeply $p.out.slurp(:close).chomp.words.Bag, $expect, $assertion;
+ } else {
+ is $p.out.slurp(:close).chomp, $expect, $assertion;
+ }
+}
+
+# Task 1, Zero Friend
+pwc-test './ch-1.raku', <4 2 -1 3 -2>, 1, 'Zero Friend: (4,2,-1,3,-2) => 1';
+pwc-test './ch-1.raku', <-- -5 5 -3 3 -1 1>, 1, 'Zero Friend: (-5,5,-3,3,-1,1) => 1';
+pwc-test './ch-1.raku', <7 -3 0 2 -8>, 0, 'Zero Friend: (7,-3,0,2,-8) => 0';
+pwc-test './ch-1.raku', <-- -2 -5 -1 -8>, 1, 'Zero Friend: (-2,-5,-1,-8) => 1';
+pwc-test './ch-1.raku', <-- -2 2 -4 4 -1 1>, 1, 'Zero Friend: (-2,2,-4,4,-1,1) => 1';
+
+# Task 2, Champion Team
+pwc-test './ch-2.raku', '[0,1,1],[0,0,1],[0,0,0]', 'Team 0', 'Champion Team: [0,1,1],[0,0,1],[0,0,0] => "Team 0"';
+pwc-test './ch-2.raku', '[0,1,0,0],[0,0,0,0],[1,1,0,0],[1,1,1,0]', 'Team 3', 'Champion Team: [0,1,0,0],[0,0,0,0],[1,1,0,0],[1,1,1,0] => "Team 3"';
+pwc-test './ch-2.raku', '[0,1,0,1],[0,0,1,1],[1,0,0,0],[0,0,1,0]', 'Team 0', 'Champion Team: [0,1,0,1],[0,0,1,1],[1,0,0,0],[0,0,1,0] => "Team 0"';
+pwc-test './ch-2.raku', '[0,1,1],[0,0,0],[0,1,0]', 'Team 0', 'Champion Team: [0,1,1],[0,0,0],[0,1,0] => "Team 0"';
+pwc-test './ch-2.raku', '[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]', 'Team 2', '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] => "Team 2"';
+pwc-test './ch-2.raku', '[0,1,0],[0,0,1],[1,0,0]', 'Team 0,1,2 tie', 'Champion Team: [0,1,0],[0,0,1],[1,0,0] => "Team 0,1,2 tie"';