diff options
| author | Mark A <andemark@a-iot1t.uch.ad.pvt> | 2021-08-31 02:39:57 -0600 |
|---|---|---|
| committer | Mark A <andemark@a-iot1t.uch.ad.pvt> | 2021-08-31 02:39:57 -0600 |
| commit | c15b7c3c0aae51af62930deb9d1bfc2f41114d3a (patch) | |
| tree | 7c29356d545fe33756bf89162ad049958145e49d | |
| parent | 5d0d8804def60294f33cd5c023c822577161ed9b (diff) | |
| download | perlweeklychallenge-club-c15b7c3c0aae51af62930deb9d1bfc2f41114d3a.tar.gz perlweeklychallenge-club-c15b7c3c0aae51af62930deb9d1bfc2f41114d3a.tar.bz2 perlweeklychallenge-club-c15b7c3c0aae51af62930deb9d1bfc2f41114d3a.zip | |
ch-2.raku
| -rw-r--r-- | challenge-128/mark-anderson/raku/ch-2.raku | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/challenge-128/mark-anderson/raku/ch-2.raku b/challenge-128/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..6ce7d0fe18 --- /dev/null +++ b/challenge-128/mark-anderson/raku/ch-2.raku @@ -0,0 +1,34 @@ +#!/usr/bin/env raku + +use Test; +plan 2; + +is minimum-platforms(<11:20 14:30>, <11:50 15:00>), 1, 'Example 1'; + +is minimum-platforms(<10:20 11:00 11:10 12:20 16:20 19:00>, + <10:30 13:20 12:40 12:50 20:20 21:20>), 3, 'Example 2'; + +sub minimum-platforms($arrivals, $departures) +{ + my @queue; + my $result; + my @arrivals = $arrivals.sort; + my @departures = $departures.sort; + + while @arrivals + { + if @arrivals.head lt @departures.head + { + @queue.push: @arrivals.shift; + $result = max($result, +@queue); + } + + else + { + @departures.shift; + @queue.shift; + } + } + + $result; +} |
