aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-10-17 16:16:51 +0100
committerGitHub <noreply@github.com>2022-10-17 16:16:51 +0100
commitd6a8cbc62f5dbc165eecf33ab8a602a8bd83a436 (patch)
treee4d3b051a2c7357f21cf29f9d71e63d8d17c91a4
parent93c82a30f52b3ba21243736a344ce846527fa005 (diff)
parent65dcee4b19196cba4572ea0437706de5def4e7a8 (diff)
downloadperlweeklychallenge-club-d6a8cbc62f5dbc165eecf33ab8a602a8bd83a436.tar.gz
perlweeklychallenge-club-d6a8cbc62f5dbc165eecf33ab8a602a8bd83a436.tar.bz2
perlweeklychallenge-club-d6a8cbc62f5dbc165eecf33ab8a602a8bd83a436.zip
Merge pull request #6921 from andemark/branch-for-challenge-187
Challenge 187 Solutions (Raku)
-rw-r--r--challenge-187/mark-anderson/raku/ch-1.raku24
-rw-r--r--challenge-187/mark-anderson/raku/ch-2.raku19
2 files changed, 43 insertions, 0 deletions
diff --git a/challenge-187/mark-anderson/raku/ch-1.raku b/challenge-187/mark-anderson/raku/ch-1.raku
new file mode 100644
index 0000000000..e29d0a0649
--- /dev/null
+++ b/challenge-187/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,24 @@
+#!/usr/bin/env raku
+use Test;
+
+is days-together({:SD('12-01'), :ED('20-01')}, {:SD('15-01'), :ED('18-01')}), 4;
+is days-together({:SD('02-03'), :ED('12-03')}, {:SD('13-03'), :ED('14-03')}), 0;
+is days-together({:SD('02-03'), :ED('12-03')}, {:SD('11-03'), :ED('15-03')}), 2;
+is days-together({:SD('30-03'), :ED('05-04')}, {:SD('28-03'), :ED('02-04')}), 4;
+
+sub days-together(%foo, %bar)
+{
+ my $a := ('01','02'...'31'), ('01','02'...'28'), ('01','02'...'31'),
+ ('01','02'...'30'), ('01','02'...'31'), ('01','02'...'30'),
+ ('01','02'...'31'), ('01','02'...'31'), ('01','02'...'30'),
+ ('01','02'...'31'), ('01','02'...'30'), ('01','02'...'31');
+
+ my $b := '-01','-02'...'-12';
+
+ my $c := ($a >>~>> $b).flat.List;
+
+ my $d := map { $_ if %foo<SD> ff %foo<ED> }, $c;
+ my $e := map { $_ if %bar<SD> ff %bar<ED> }, $c;
+
+ ($d (&) $e).elems
+}
diff --git a/challenge-187/mark-anderson/raku/ch-2.raku b/challenge-187/mark-anderson/raku/ch-2.raku
new file mode 100644
index 0000000000..accc086c9e
--- /dev/null
+++ b/challenge-187/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,19 @@
+#!/usr/bin/env raku
+use Test;
+
+is-deeply max-magical-triplet(1, 2, 3, 2), (3, 2, 2);
+is-deeply max-magical-triplet(1, 3, 2), ();
+is-deeply max-magical-triplet(1, 1, 2, 3), ();
+is-deeply max-magical-triplet(2, 4, 3), (4, 3, 2);
+
+sub max-magical-triplet(+$list)
+{
+ $list.combinations(3)
+ .flat
+ .grep({ [and] $^a + $^b > $^c,
+ $^b + $^c > $^a,
+ $^a + $^c > $^b })
+ .map({ .sort(-*) })
+ andthen
+ .elems ?? .max !! Empty.List
+}