aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author冯昶 <fengchang@novel-supertv.com>2022-11-01 19:16:08 +0800
committer冯昶 <fengchang@novel-supertv.com>2022-11-01 19:16:08 +0800
commitf440681893fcdec9eb47797f0f030e0345c8ef44 (patch)
treeb9a4a6e304eac299f491ab19057f17431b4c3478
parent27710d0ca5a4c8aa53fa08811cbe58457d5eb63f (diff)
downloadperlweeklychallenge-club-f440681893fcdec9eb47797f0f030e0345c8ef44.tar.gz
perlweeklychallenge-club-f440681893fcdec9eb47797f0f030e0345c8ef44.tar.bz2
perlweeklychallenge-club-f440681893fcdec9eb47797f0f030e0345c8ef44.zip
challenge #189, raku solutions
-rwxr-xr-xchallenge-189/feng-chang/raku/ch-1.raku9
-rwxr-xr-xchallenge-189/feng-chang/raku/ch-2.raku20
2 files changed, 29 insertions, 0 deletions
diff --git a/challenge-189/feng-chang/raku/ch-1.raku b/challenge-189/feng-chang/raku/ch-1.raku
new file mode 100755
index 0000000000..c5900f29fb
--- /dev/null
+++ b/challenge-189/feng-chang/raku/ch-1.raku
@@ -0,0 +1,9 @@
+#!/bin/env raku
+
+unit sub MAIN(*@C);
+
+my $c = @C.pop;
+put do given @C.grep(* gt $c).min {
+ when 'a'..'z' { $_ }
+ default { $c }
+}
diff --git a/challenge-189/feng-chang/raku/ch-2.raku b/challenge-189/feng-chang/raku/ch-2.raku
new file mode 100755
index 0000000000..ab7a3bc4e8
--- /dev/null
+++ b/challenge-189/feng-chang/raku/ch-2.raku
@@ -0,0 +1,20 @@
+#!/bin/env raku
+
+sub degree(@N is copy --> UInt:D) {
+ my $d = 0;
+
+ while @N {
+ my $cnt = @N.grep(* == @N[0]).elems;
+ $d = $cnt if $cnt > $d;
+ @N .= grep(* != @N[0]);
+ }
+
+ $d
+}
+
+unit sub MAIN(*@n);
+
+my $d = degree(@n);
+my @candidates = (^@n.elems X ^@n.elems).grep({.[1] ≥ .[0]}).grep({ $d == degree(@n[.minmax]) });
+my $min-val = @candidates.map({ .[1] - .[0] }).min;
+put @n[@candidates.grep({ $min-val == .[1]-.[0] }).first.minmax];