From a406c6935f88c7afa04a707a2611ebe4fe4eadae Mon Sep 17 00:00:00 2001 From: 冯昶 Date: Mon, 17 Oct 2022 17:59:37 +0800 Subject: challenge #187, raku solutions --- challenge-187/feng-chang/raku/ch-1.raku | 11 +++++++++++ challenge-187/feng-chang/raku/ch-2.raku | 15 +++++++++++++++ challenge-187/feng-chang/raku/ex01.txt | 2 ++ challenge-187/feng-chang/raku/ex02.txt | 2 ++ challenge-187/feng-chang/raku/ex03.txt | 2 ++ challenge-187/feng-chang/raku/ex04.txt | 2 ++ 6 files changed, 34 insertions(+) create mode 100755 challenge-187/feng-chang/raku/ch-1.raku create mode 100755 challenge-187/feng-chang/raku/ch-2.raku create mode 100644 challenge-187/feng-chang/raku/ex01.txt create mode 100644 challenge-187/feng-chang/raku/ex02.txt create mode 100644 challenge-187/feng-chang/raku/ex03.txt create mode 100644 challenge-187/feng-chang/raku/ex04.txt diff --git a/challenge-187/feng-chang/raku/ch-1.raku b/challenge-187/feng-chang/raku/ch-1.raku new file mode 100755 index 0000000000..53aad8726b --- /dev/null +++ b/challenge-187/feng-chang/raku/ch-1.raku @@ -0,0 +1,11 @@ +#!/bin/env raku + +unit sub MAIN(Str:D $f where *.IO.e = 'ex01.txt'); + +my (\sd-foo, \ed-foo, \sd-bar, \ed-bar) = + $f.IO.lines.comb(/\d\d '-' \d\d/)».comb.map({ "{.[3]}{.[4]}-{.[0]}{.[1]}" }); + +my \year = '2022'; +put (("{year}-{sd-foo}".Date .. "{year}-{ed-foo}".Date) (&) + ("{year}-{sd-bar}".Date .. "{year}-{ed-bar}".Date) + ).elems, ' day(s)'; diff --git a/challenge-187/feng-chang/raku/ch-2.raku b/challenge-187/feng-chang/raku/ch-2.raku new file mode 100755 index 0000000000..50d4790d75 --- /dev/null +++ b/challenge-187/feng-chang/raku/ch-2.raku @@ -0,0 +1,15 @@ +#!/bin/env raku + +unit sub MAIN(*@a); + +my @Can = @a.sort({ $^b cmp $^a }).combinations(3).grep({ + .[0] + .[1] > .[2] and + .[1] + .[2] > .[0] and + .[2] + .[0] > .[1] +}); + +if @Can.elems == 0 { + put '()'; +} else { + put '(', @Can.grep({ .sum == @Can».sum.max }).first.join(', '), ')'; +} diff --git a/challenge-187/feng-chang/raku/ex01.txt b/challenge-187/feng-chang/raku/ex01.txt new file mode 100644 index 0000000000..b3345063c8 --- /dev/null +++ b/challenge-187/feng-chang/raku/ex01.txt @@ -0,0 +1,2 @@ +Foo => SD: '12-01' ED: '20-01' +Bar => SD: '15-01' ED: '18-01' diff --git a/challenge-187/feng-chang/raku/ex02.txt b/challenge-187/feng-chang/raku/ex02.txt new file mode 100644 index 0000000000..bee5dd3313 --- /dev/null +++ b/challenge-187/feng-chang/raku/ex02.txt @@ -0,0 +1,2 @@ +Foo => SD: '02-03' ED: '12-03' +Bar => SD: '13-03' ED: '14-03' diff --git a/challenge-187/feng-chang/raku/ex03.txt b/challenge-187/feng-chang/raku/ex03.txt new file mode 100644 index 0000000000..9f2441e6a9 --- /dev/null +++ b/challenge-187/feng-chang/raku/ex03.txt @@ -0,0 +1,2 @@ +Foo => SD: '02-03' ED: '12-03' +Bar => SD: '11-03' ED: '15-03' diff --git a/challenge-187/feng-chang/raku/ex04.txt b/challenge-187/feng-chang/raku/ex04.txt new file mode 100644 index 0000000000..5f193a0a13 --- /dev/null +++ b/challenge-187/feng-chang/raku/ex04.txt @@ -0,0 +1,2 @@ +Foo => SD: '30-03' ED: '05-04' +Bar => SD: '28-03' ED: '02-04' -- cgit From 420788c28e9d40b3a894b586760cabf7a5c50743 Mon Sep 17 00:00:00 2001 From: 冯昶 Date: Mon, 24 Oct 2022 18:41:46 +0800 Subject: challenge #188, raku solutions --- challenge-188/feng-chang/raku/ch-1.raku | 7 +++++++ challenge-188/feng-chang/raku/ch-2.raku | 11 +++++++++++ 2 files changed, 18 insertions(+) create mode 100755 challenge-188/feng-chang/raku/ch-1.raku create mode 100755 challenge-188/feng-chang/raku/ch-2.raku diff --git a/challenge-188/feng-chang/raku/ch-1.raku b/challenge-188/feng-chang/raku/ch-1.raku new file mode 100755 index 0000000000..84ad3bdca7 --- /dev/null +++ b/challenge-188/feng-chang/raku/ch-1.raku @@ -0,0 +1,7 @@ +#!/bin/env raku + +unit sub MAIN(*@nums); + +my Int \k = @nums.pop; +put '@list = (', @nums.join(', '), '), $k = ', k; +put @nums.combinations(2).grep({ .sum %% k }).elems; diff --git a/challenge-188/feng-chang/raku/ch-2.raku b/challenge-188/feng-chang/raku/ch-2.raku new file mode 100755 index 0000000000..751dff20bd --- /dev/null +++ b/challenge-188/feng-chang/raku/ch-2.raku @@ -0,0 +1,11 @@ +#!/bin/env raku + +unit sub MAIN(UInt:D $x is copy, UInt:D $y is copy); + +my UInt $cnt = 0; +while $x and $y { + $x ≥ $y ?? ($x -= $y) !! ($y -= $x); + ++$cnt; +} + +put $cnt; -- cgit