diff options
| author | Jan Krňávek <Jan.Krnavek@gmail.com> | 2023-04-30 16:18:43 +0200 |
|---|---|---|
| committer | Jan Krňávek <Jan.Krnavek@gmail.com> | 2023-04-30 16:18:43 +0200 |
| commit | d5b8ea4f4e751c853f7fab8fa0c3c41ce6127f9b (patch) | |
| tree | 6d970f7a5820ba362463a6559ec24e7553a06cc9 | |
| parent | 579fa7b88b8b452e6c7b52cb203c72cefab01a1c (diff) | |
| download | perlweeklychallenge-club-d5b8ea4f4e751c853f7fab8fa0c3c41ce6127f9b.tar.gz perlweeklychallenge-club-d5b8ea4f4e751c853f7fab8fa0c3c41ce6127f9b.tar.bz2 perlweeklychallenge-club-d5b8ea4f4e751c853f7fab8fa0c3c41ce6127f9b.zip | |
solutions week 214-1
| -rw-r--r-- | challenge-214/wambash/raku/ch-1.raku | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/challenge-214/wambash/raku/ch-1.raku b/challenge-214/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..73610129a1 --- /dev/null +++ b/challenge-214/wambash/raku/ch-1.raku @@ -0,0 +1,26 @@ +#!/usr/bin/env raku +enum M (<G S B>); + +multi rank-place (M(Int) $_){ $_ } +multi rank-place (Int $_ where * > 2){ $_ + 1 } +multi rank-place (+@place) { @place.map: &rank-place } + +sub rank-score (+@score) { + my %rank := @score.sort.reverse.antipairs.squish( as => *.key ).hash; + + @score.map: { rank-place %rank{$_} } +} + +multi MAIN (Bool :test($)!) { + use Test; + is rank-place(0,1,3,2,4),(G,S,4,B,5); + is rank-score(1,2,4,3,5),(5,4,S,B,G); + is rank-score(8,5,6,7,4),(G,4,B,S,5); + is rank-score(3,5,4,2) ,(B,G,S,4); + is rank-score(2,5,2,1,7,5,1),(4,S,4,6,G,S,6); + done-testing; +} + +multi MAIN (*@score) { + say rank-score @score; +} |
