diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2023-06-04 22:24:33 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-06-04 22:24:33 +0100 |
| commit | cbde6a54a8f112c9d9d0be8d92189f8a3ac2f954 (patch) | |
| tree | e29f87c7e34d9ddc6b50bb4e63ade5afef6e8275 | |
| parent | b62fe76f9d5a6187ec47ad6f4a091542aa9a72a1 (diff) | |
| parent | c7632da5c2846bc221acf9e0b542f9c4751c5bde (diff) | |
| download | perlweeklychallenge-club-cbde6a54a8f112c9d9d0be8d92189f8a3ac2f954.tar.gz perlweeklychallenge-club-cbde6a54a8f112c9d9d0be8d92189f8a3ac2f954.tar.bz2 perlweeklychallenge-club-cbde6a54a8f112c9d9d0be8d92189f8a3ac2f954.zip | |
Merge pull request #8180 from wambash/challenge-week-219
solutions week 219
| -rw-r--r-- | challenge-219/wambash/raku/ch-1.raku | 18 | ||||
| -rw-r--r-- | challenge-219/wambash/raku/ch-2.raku | 28 |
2 files changed, 46 insertions, 0 deletions
diff --git a/challenge-219/wambash/raku/ch-1.raku b/challenge-219/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..4b74de2b46 --- /dev/null +++ b/challenge-219/wambash/raku/ch-1.raku @@ -0,0 +1,18 @@ +#!/usr/bin/env raku + +sub sorted-squares (+@list) { + @list + andthen .map: *² + andthen .sort +} + +multi MAIN (Bool :test($)!) { + use Test; + is sorted-squares(-2,-1,0,3,4),(0,1,4,9,16); + is sorted-squares(5, -4, -1, 3, 6),(1, 9, 16, 25, 36); + done-testing; +} + +multi MAIN (*@list) { + say sorted-squares @list +} diff --git a/challenge-219/wambash/raku/ch-2.raku b/challenge-219/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..ef9ddb0f40 --- /dev/null +++ b/challenge-219/wambash/raku/ch-2.raku @@ -0,0 +1,28 @@ +#!/usr/bin/env raku +use v6.e.*; + +sub travel-expenditure (+@days, *%costs (:$day, :$week, :$month)) { + my Str @day-plan is default('x') ; + @day-plan[|@days] = 'T' xx *; + my token day { <!after T ** 6> T } + my token week { T <?before T x* T> <[Tx]> ** 1..6 } + my token month { T <?before T [<[Tx]> **? 6..28] T> <[Tx]> ** 7..29 } + + @day-plan.join + andthen .match: / ^ x* [ <month> | <week> | <day> ]+ %% x* $/, :ex + andthen .map: *.caps.map: *.key + andthen .map: { %costs{|$_}.sum }\ + andthen .min +} + +multi MAIN (Bool :test($)!) { + use Test; + is travel-expenditure( 1,3,4,5,6):5day:30week:90month, 25; + is travel-expenditure( 1, 5, 6, 7, 9, 15,:2day:7week:25month), 11; + is travel-expenditure( 1, 2, 3, 5, 7, 10, 11, 12, 14, 20, 30, 31,:2day:7week:25month), 20; + done-testing; +} + +multi MAIN (+@days, :d($day)!,:w($week)!,:m($month)!) { + say travel-expenditure @days, :$day, :$week, :$month +} |
