diff options
| author | Mark <53903062+andemark@users.noreply.github.com> | 2022-10-17 07:31:54 +0000 |
|---|---|---|
| committer | Mark <53903062+andemark@users.noreply.github.com> | 2022-10-17 07:31:54 +0000 |
| commit | b78d0eadcb43c7cfc737ba31857af95319031b4e (patch) | |
| tree | 9e12b169cb7b84bffd3bce8fb686cdce842e5f35 /challenge-187/mark-anderson | |
| parent | 70539816fb240ac725e4689763b9851c6fce6788 (diff) | |
| download | perlweeklychallenge-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.raku | 24 | ||||
| -rw-r--r-- | challenge-187/mark-anderson/raku/ch-2.raku | 20 |
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 +} |
