diff options
| author | 冯昶 <fengchang@novel-supertv.com> | 2022-11-01 19:16:08 +0800 |
|---|---|---|
| committer | 冯昶 <fengchang@novel-supertv.com> | 2022-11-01 19:16:08 +0800 |
| commit | f440681893fcdec9eb47797f0f030e0345c8ef44 (patch) | |
| tree | b9a4a6e304eac299f491ab19057f17431b4c3478 | |
| parent | 27710d0ca5a4c8aa53fa08811cbe58457d5eb63f (diff) | |
| download | perlweeklychallenge-club-f440681893fcdec9eb47797f0f030e0345c8ef44.tar.gz perlweeklychallenge-club-f440681893fcdec9eb47797f0f030e0345c8ef44.tar.bz2 perlweeklychallenge-club-f440681893fcdec9eb47797f0f030e0345c8ef44.zip | |
challenge #189, raku solutions
| -rwxr-xr-x | challenge-189/feng-chang/raku/ch-1.raku | 9 | ||||
| -rwxr-xr-x | challenge-189/feng-chang/raku/ch-2.raku | 20 |
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]; |
