aboutsummaryrefslogtreecommitdiff
path: root/challenge-228
diff options
context:
space:
mode:
author冯昶 <fengchang@novel-supertv.com>2023-07-31 16:49:32 +0800
committer冯昶 <fengchang@novel-supertv.com>2023-07-31 16:49:32 +0800
commitcb5bb2d77bf43ab282150372f5cd87bbbcb7a477 (patch)
tree6db9d81d6f3ba38af8f8f5d573b1d48124732428 /challenge-228
parente7b6313261ef4541d4dcc303c46ef0d886649b70 (diff)
downloadperlweeklychallenge-club-cb5bb2d77bf43ab282150372f5cd87bbbcb7a477.tar.gz
perlweeklychallenge-club-cb5bb2d77bf43ab282150372f5cd87bbbcb7a477.tar.bz2
perlweeklychallenge-club-cb5bb2d77bf43ab282150372f5cd87bbbcb7a477.zip
challenge 228, raku solutions
Diffstat (limited to 'challenge-228')
-rwxr-xr-xchallenge-228/feng-chang/raku/ch-1.raku5
-rwxr-xr-xchallenge-228/feng-chang/raku/ch-2.raku13
-rwxr-xr-xchallenge-228/feng-chang/raku/test.raku21
3 files changed, 39 insertions, 0 deletions
diff --git a/challenge-228/feng-chang/raku/ch-1.raku b/challenge-228/feng-chang/raku/ch-1.raku
new file mode 100755
index 0000000000..d60d7aec52
--- /dev/null
+++ b/challenge-228/feng-chang/raku/ch-1.raku
@@ -0,0 +1,5 @@
+#!/bin/env raku
+
+unit sub MAIN(*@N);
+
+put @N.Bag.map({ .key if .value == 1 }).sum;
diff --git a/challenge-228/feng-chang/raku/ch-2.raku b/challenge-228/feng-chang/raku/ch-2.raku
new file mode 100755
index 0000000000..0d7f69bfd0
--- /dev/null
+++ b/challenge-228/feng-chang/raku/ch-2.raku
@@ -0,0 +1,13 @@
+#!/bin/env raku
+
+unit sub MAIN(*@N);
+
+my $cnt = 0;
+
+while @N {
+ my $ndx = @N.first(@N.min, :k);
+ $cnt += $ndx + 1;
+ @N.splice($ndx, 1);
+}
+
+put $cnt;
diff --git a/challenge-228/feng-chang/raku/test.raku b/challenge-228/feng-chang/raku/test.raku
new file mode 100755
index 0000000000..966992679a
--- /dev/null
+++ b/challenge-228/feng-chang/raku/test.raku
@@ -0,0 +1,21 @@
+#!/bin/env raku
+
+# The Weekly Challenge 228
+use Test;
+
+sub pwc-test(Str:D $script, *@input) {
+ my ($expect, $assertion) = @input.splice(*-2, 2);
+ my $p = run $script, |@input, :out;
+ is $p.out.slurp(:close).chomp, $expect, $assertion;
+}
+
+# Task 1, Unique Sum
+pwc-test './ch-1.raku', |<2 1 3 2>, 4, 'Unique Sum: (2, 1, 3, 2) => 4';
+pwc-test './ch-1.raku', |<1 1 1 1>, 0, 'Unique Sum: (1, 1, 1, 1) => 0';
+pwc-test './ch-1.raku', |<2 1 3 4>, 10, 'Unique Sum: (2, 1, 3, 4) => 10';
+
+# Task 2, Empty Array
+pwc-test './ch-2.raku', |<3 4 2>, 5, 'Empty Array: (3, 4, 2) => 5';
+pwc-test './ch-2.raku', |<1 2 3>, 3, 'Empty Array: (1, 2, 3) => 3';
+
+done-testing;