aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPolgár Márton <polgar@astron.hu>2023-02-27 21:08:20 +0100
committerPolgár Márton <polgar@astron.hu>2023-02-27 21:08:20 +0100
commit62774e809fdabef49849468c2d894540cd08a583 (patch)
tree04bc988a67075311830caa468f18585936f34619
parent09eef326c170759598ee2d5d35a5aad50be4a11c (diff)
downloadperlweeklychallenge-club-62774e809fdabef49849468c2d894540cd08a583.tar.gz
perlweeklychallenge-club-62774e809fdabef49849468c2d894540cd08a583.tar.bz2
perlweeklychallenge-club-62774e809fdabef49849468c2d894540cd08a583.zip
Weeklies for 206th week by 2colours
-rwxr-xr-xchallenge-206/2colours/raku/ch-1.raku26
-rwxr-xr-xchallenge-206/2colours/raku/ch-2.raku13
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;
+}