aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-11-02 10:49:09 +0000
committerGitHub <noreply@github.com>2022-11-02 10:49:09 +0000
commitadf72db47b4815535ea06c6923ed0db79fac8e15 (patch)
tree54247f0073a22f972006ab023e27282e497b8652
parent51c585599f0d5a08899e0380f216a15be14b1167 (diff)
parentf440681893fcdec9eb47797f0f030e0345c8ef44 (diff)
downloadperlweeklychallenge-club-adf72db47b4815535ea06c6923ed0db79fac8e15.tar.gz
perlweeklychallenge-club-adf72db47b4815535ea06c6923ed0db79fac8e15.tar.bz2
perlweeklychallenge-club-adf72db47b4815535ea06c6923ed0db79fac8e15.zip
Merge pull request #7018 from seaker/master
challenge #189, Feng Chang's 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];