diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-10-17 16:16:51 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-17 16:16:51 +0100 |
| commit | d6a8cbc62f5dbc165eecf33ab8a602a8bd83a436 (patch) | |
| tree | e4d3b051a2c7357f21cf29f9d71e63d8d17c91a4 | |
| parent | 93c82a30f52b3ba21243736a344ce846527fa005 (diff) | |
| parent | 65dcee4b19196cba4572ea0437706de5def4e7a8 (diff) | |
| download | perlweeklychallenge-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.raku | 24 | ||||
| -rw-r--r-- | challenge-187/mark-anderson/raku/ch-2.raku | 19 |
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 +} |
