diff options
| author | Polgár Márton <polgar@astron.hu> | 2023-02-27 21:08:20 +0100 |
|---|---|---|
| committer | Polgár Márton <polgar@astron.hu> | 2023-02-27 21:08:20 +0100 |
| commit | 62774e809fdabef49849468c2d894540cd08a583 (patch) | |
| tree | 04bc988a67075311830caa468f18585936f34619 | |
| parent | 09eef326c170759598ee2d5d35a5aad50be4a11c (diff) | |
| download | perlweeklychallenge-club-62774e809fdabef49849468c2d894540cd08a583.tar.gz perlweeklychallenge-club-62774e809fdabef49849468c2d894540cd08a583.tar.bz2 perlweeklychallenge-club-62774e809fdabef49849468c2d894540cd08a583.zip | |
Weeklies for 206th week by 2colours
| -rwxr-xr-x | challenge-206/2colours/raku/ch-1.raku | 26 | ||||
| -rwxr-xr-x | challenge-206/2colours/raku/ch-2.raku | 13 |
2 files changed, 39 insertions, 0 deletions
diff --git a/challenge-206/2colours/raku/ch-1.raku b/challenge-206/2colours/raku/ch-1.raku new file mode 100755 index 0000000000..b0ea729a7a --- /dev/null +++ b/challenge-206/2colours/raku/ch-1.raku @@ -0,0 +1,26 @@ +#!/usr/bin/env raku + + +my token time-hours24 { \d ** 2 <?{$/ < 24}> } +my token time-minutes { \d ** 2 <?{$/ < 60}> } +my token time-o-clock { <time-hours24> ':' <time-minutes> } +my token time-list {^ '(' ['"' <time-o-clock> '"'] ** 2..* % ',' ')' $} + +sub infix:<t->($lhs is copy, $rhs is copy) { + $_ = .split(':').&{ .[0] * 60 + .[1]} for ($lhs, $rhs); + ($lhs - $rhs) % 1440 +} + +sub MAIN($_) { + die 'Please provide a valid list of HH:MM times' unless S:g/\s// ~~ &time-list; + given my Str() @time = $<time-o-clock> { + .=sort; + .push: .head; + } + say @time; + @time + .rotor: 2 => -1 andthen + .map: { .[1] t- .[0] } andthen + .min + .say; +}
\ No newline at end of file diff --git a/challenge-206/2colours/raku/ch-2.raku b/challenge-206/2colours/raku/ch-2.raku new file mode 100755 index 0000000000..dd8a4d3895 --- /dev/null +++ b/challenge-206/2colours/raku/ch-2.raku @@ -0,0 +1,13 @@ +#!/usr/bin/env raku + + +my token unsigned-integer { 0 | <[1..9]><[0..9]>* }; +my token integer { '-'? <unsigned-integer> }; +subset IntList of Str where /^ '(' <integer>* % ',' ')' $/; + + +sub MAIN(Str $array) { + die 'Please supply a valid list of integers.' unless $array.subst(/\s/, '', :g) ~~ IntList; + my Int() @array = $<integer>; + @array.sort.rotor(1 => 1).flat.sum.say; +} |
