diff options
| author | Jan Krňávek <Jan.Krnavek@gmail.com> | 2023-10-08 23:13:44 +0200 |
|---|---|---|
| committer | Jan Krňávek <Jan.Krnavek@gmail.com> | 2023-10-08 23:13:44 +0200 |
| commit | 7ec98672a4d9dc21153a2dfb4be2decd51bce584 (patch) | |
| tree | 4e87255c77bf1bdb5377dbba0b6ffd16821ff5c9 /challenge-237 | |
| parent | 02aa2cddcb560fe9843129749f849975f80c8c2d (diff) | |
| download | perlweeklychallenge-club-7ec98672a4d9dc21153a2dfb4be2decd51bce584.tar.gz perlweeklychallenge-club-7ec98672a4d9dc21153a2dfb4be2decd51bce584.tar.bz2 perlweeklychallenge-club-7ec98672a4d9dc21153a2dfb4be2decd51bce584.zip | |
solutions week 237
Diffstat (limited to 'challenge-237')
| -rw-r--r-- | challenge-237/wambash/raku/ch-1.raku | 21 | ||||
| -rw-r--r-- | challenge-237/wambash/raku/ch-2.raku | 26 |
2 files changed, 47 insertions, 0 deletions
diff --git a/challenge-237/wambash/raku/ch-1.raku b/challenge-237/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..ff2f17af42 --- /dev/null +++ b/challenge-237/wambash/raku/ch-1.raku @@ -0,0 +1,21 @@ +#!/usr/bin/env raku + +sub seize-the-day ($year, $month, $weekday-of-month, $day-of-week) { + Date.new: :$year, :$month + andthen $_ ..^ .later: :1month + andthen .grep: { .day-of-week == $day-of-week }\ + andthen .[$weekday-of-month-1] + andthen .day +} + +multi MAIN (Bool :test($)!) { + use Test; + is seize-the-day(2024,4,3,2),16; + is seize-the-day(2025,10,2,4),9; + is-deeply seize-the-day(2026,8,5,3),Empty; + done-testing; +} + +multi MAIN ($year, $month, $weekday-of-month, $day-of-wee) { + say +seize-the-day $year, $month, $weekday-of-month, $day-of-wee +} diff --git a/challenge-237/wambash/raku/ch-2.raku b/challenge-237/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..5596929ba6 --- /dev/null +++ b/challenge-237/wambash/raku/ch-2.raku @@ -0,0 +1,26 @@ +#!/usr/bin/env raku +use v6.e.PREVIEW; + + +sub maximise-greatness (+nums) { + my @sorted = nums.sort; + my @snip-func = @sorted.map: { * ≤ $_ } + + @sorted + andthen .snip: |@snip-func + andthen .skip + andthen .elems +} + +multi MAIN (Bool :test($)!) { + use Test; + is maximise-greatness(1,3,5,2,1,3,1),4; + is maximise-greatness(1,2,3,4),3; + my @nsg = (1..10).map: {slip $_ xx $_ }; + is maximise-greatness(@nsg), 45; + done-testing; +} + +multi MAIN (*@nums) { + say maximise-greatness @nums +} |
