aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xchallenge-187/feng-chang/raku/ch-1.raku11
-rwxr-xr-xchallenge-187/feng-chang/raku/ch-2.raku15
-rw-r--r--challenge-187/feng-chang/raku/ex01.txt2
-rw-r--r--challenge-187/feng-chang/raku/ex02.txt2
-rw-r--r--challenge-187/feng-chang/raku/ex03.txt2
-rw-r--r--challenge-187/feng-chang/raku/ex04.txt2
-rwxr-xr-xchallenge-188/feng-chang/raku/ch-1.raku7
-rwxr-xr-xchallenge-188/feng-chang/raku/ch-2.raku11
8 files changed, 52 insertions, 0 deletions
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'
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;