From 77244cdd27ba9369ded9f12d06f495f7dab42d2e Mon Sep 17 00:00:00 2001 From: 2colours Date: Sun, 12 May 2024 21:09:56 +0200 Subject: Week #262 solutions in Raku --- challenge-262/2colours/raku/ch-1.raku | 12 ++++++++++++ challenge-262/2colours/raku/ch-2.raku | 16 ++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 challenge-262/2colours/raku/ch-1.raku create mode 100644 challenge-262/2colours/raku/ch-2.raku diff --git a/challenge-262/2colours/raku/ch-1.raku b/challenge-262/2colours/raku/ch-1.raku new file mode 100644 index 0000000000..b574e442b8 --- /dev/null +++ b/challenge-262/2colours/raku/ch-1.raku @@ -0,0 +1,12 @@ +#!/usr/bin/env raku + +my token integer { 0 | '-'? <[1..9]> <[0..9]>* } +subset IntList of Str where /^ '(' * % ',' ')' $/; + +sub MAIN( + $ints +) { + die 'Please provide valid input for @ints' unless $ints.subst(/\s/, '', :g) ~~ IntList; + my Int() @ints = $; + @ints.grep(* != 0).classify(*.sign).map(*.value.elems).max.say; +} \ No newline at end of file diff --git a/challenge-262/2colours/raku/ch-2.raku b/challenge-262/2colours/raku/ch-2.raku new file mode 100644 index 0000000000..95733dc291 --- /dev/null +++ b/challenge-262/2colours/raku/ch-2.raku @@ -0,0 +1,16 @@ +#!/usr/bin/env raku + +my token integer { 0 | '-'? <[1..9]> <[0..9]>* } +subset IntList of Str where /^ '(' * % ',' ')' $/; + +sub MAIN( + $ints, Int $k +) { + die 'Please provide valid input for @ints' unless $ints.subst(/\s/, '', :g) ~~ IntList; + my Int() @ints = $; + @ints.kv.map(-> $index, $value { + my $needed-factor = $k div ($k gcd $index); + my $next-valid = ceiling(($index + 1) / $needed-factor) * $needed-factor; + @ints[$next-valid, $next-valid + $needed-factor ...^ @ints.elems].grep($value).elems + }).sum.say; +} \ No newline at end of file -- cgit