aboutsummaryrefslogtreecommitdiff
path: root/challenge-187/mark-anderson
diff options
context:
space:
mode:
authorMark <53903062+andemark@users.noreply.github.com>2022-10-17 07:31:54 +0000
committerMark <53903062+andemark@users.noreply.github.com>2022-10-17 07:31:54 +0000
commitb78d0eadcb43c7cfc737ba31857af95319031b4e (patch)
tree9e12b169cb7b84bffd3bce8fb686cdce842e5f35 /challenge-187/mark-anderson
parent70539816fb240ac725e4689763b9851c6fce6788 (diff)
downloadperlweeklychallenge-club-b78d0eadcb43c7cfc737ba31857af95319031b4e.tar.gz
perlweeklychallenge-club-b78d0eadcb43c7cfc737ba31857af95319031b4e.tar.bz2
perlweeklychallenge-club-b78d0eadcb43c7cfc737ba31857af95319031b4e.zip
Challenge 187 Solutions (Raku)
Diffstat (limited to 'challenge-187/mark-anderson')
-rw-r--r--challenge-187/mark-anderson/raku/ch-1.raku24
-rw-r--r--challenge-187/mark-anderson/raku/ch-2.raku20
2 files changed, 44 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..8091a86593
--- /dev/null
+++ b/challenge-187/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,20 @@
+#!/usr/bin/env raku
+use Test;
+
+is-deeply magical-triplets(1, 2, 3, 2), (3, 2, 2);
+is-deeply magical-triplets(1, 3, 2), ();
+is-deeply magical-triplets(1, 1, 2, 3), ();
+is-deeply magical-triplets(2, 4, 3), (4, 3, 2);
+
+sub magical-triplets(+$list)
+{
+ $list.combinations(3)
+ .map({ |.permutations })
+ .unique(with => &[eqv])
+ .flat
+ .grep({ [and] $^a + $^b > $^c,
+ $^b + $^c > $^a,
+ $^a + $^c > $^b })
+ andthen
+ .elems ?? .max !! Empty.List
+}