From c15b7c3c0aae51af62930deb9d1bfc2f41114d3a Mon Sep 17 00:00:00 2001 From: Mark A Date: Tue, 31 Aug 2021 02:39:57 -0600 Subject: ch-2.raku --- challenge-128/mark-anderson/raku/ch-2.raku | 34 ++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 challenge-128/mark-anderson/raku/ch-2.raku 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; +} -- cgit From f77cb5f593125cdd2d65225bd92633b12fd621c3 Mon Sep 17 00:00:00 2001 From: Mark A Date: Tue, 31 Aug 2021 08:00:04 -0600 Subject: ch-2.raku --- challenge-128/mark-anderson/raku/ch-2.raku | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/challenge-128/mark-anderson/raku/ch-2.raku b/challenge-128/mark-anderson/raku/ch-2.raku index 6ce7d0fe18..0b54764864 100644 --- a/challenge-128/mark-anderson/raku/ch-2.raku +++ b/challenge-128/mark-anderson/raku/ch-2.raku @@ -10,8 +10,8 @@ is minimum-platforms(<10:20 11:00 11:10 12:20 16:20 19:00>, sub minimum-platforms($arrivals, $departures) { - my @queue; my $result; + my $platforms; my @arrivals = $arrivals.sort; my @departures = $departures.sort; @@ -19,14 +19,14 @@ sub minimum-platforms($arrivals, $departures) { if @arrivals.head lt @departures.head { - @queue.push: @arrivals.shift; - $result = max($result, +@queue); + @arrivals.shift; + $result = max $result, ++$platforms; } else { @departures.shift; - @queue.shift; + $platforms--; } } -- cgit From d0d38e12cae88cf9501ce535485316d6e8f8accb Mon Sep 17 00:00:00 2001 From: Mark A Date: Tue, 31 Aug 2021 09:11:09 -0600 Subject: ch-1.raku touch-up --- challenge-128/mark-anderson/raku/ch-1.raku | 52 ++++++++++++++---------------- 1 file changed, 24 insertions(+), 28 deletions(-) diff --git a/challenge-128/mark-anderson/raku/ch-1.raku b/challenge-128/mark-anderson/raku/ch-1.raku index 7e33cfec7d..84d89f6f4f 100644 --- a/challenge-128/mark-anderson/raku/ch-1.raku +++ b/challenge-128/mark-anderson/raku/ch-1.raku @@ -1,32 +1,28 @@ #!/usr/bin/env raku -say "Example 1"; -.say for max-sub-matrix(<1 0 0 0 1 0>, - <1 1 0 0 0 1>, - <1 0 0 0 0 0>); - -say " "; - -say "Example 2"; -.say for max-sub-matrix(<0 0 1 1>, - <0 0 0 1>, - <0 0 1 0>); - -say " "; - -say "Example 3"; -.say for max-sub-matrix(<1 0 1 0 1 0 1 0 1 0 0 1>, - <1 0 1 0 1 0 1 0 1 0 0 1>, - <1 0 0 0 1 0 0 0 1 1 0 0>, - <1 0 0 0 1 0 0 0 1 1 0 0>, - <1 0 0 0 1 0 1 0 1 0 1 1>, - <1 0 0 0 1 0 0 0 1 0 0 1>, - <1 0 1 0 1 0 1 0 1 0 0 1>, - <1 0 1 0 1 0 1 0 1 0 0 0>, - <1 0 1 0 1 0 1 0 1 0 0 1>, - <1 0 1 0 1 0 1 0 1 0 0 1>, - <1 0 1 0 1 0 1 0 1 0 0 0>, - <1 0 0 0 0 0 0 0 1 0 1 0>); +use Test; +plan 3; + +is-deeply max-sub-matrix(<1 0 0 0 1 0>, + <1 1 0 0 0 1>, + <1 0 0 0 0 0>), ['2 x 3', '3 x 2']; + +is-deeply max-sub-matrix(<0 0 1 1>, + <0 0 0 1>, + <0 0 1 0>), ['3 x 2',]; + +is-deeply max-sub-matrix(<1 0 1 0 1 0 1 0 1 0 0 1>, + <1 0 1 0 1 0 1 0 1 0 0 1>, + <1 0 0 0 1 0 0 0 1 1 0 0>, + <1 0 0 0 1 0 0 0 1 1 0 0>, + <1 0 0 0 1 0 1 0 1 0 1 1>, + <1 0 0 0 1 0 0 0 1 0 0 1>, + <1 0 1 0 1 0 1 0 1 0 0 1>, + <1 0 1 0 1 0 1 0 1 0 0 0>, + <1 0 1 0 1 0 1 0 1 0 0 1>, + <1 0 1 0 1 0 1 0 1 0 0 1>, + <1 0 1 0 1 0 1 0 1 0 0 0>, + <1 0 0 0 0 0 0 0 1 0 1 0>), ['4 x 3', '6 x 2']; sub max-sub-matrix(+$matrix) { @@ -52,5 +48,5 @@ sub max-sub-matrix(+$matrix) } } - %results.maxpairs; + %results.maxpairs>>.key.sort.Array; } -- cgit From a9e447d933fc8253b3445662f6a291b514772dab Mon Sep 17 00:00:00 2001 From: Mark A Date: Tue, 31 Aug 2021 09:21:46 -0600 Subject: ch-1.raku touch-up --- challenge-128/mark-anderson/raku/ch-1.raku | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/challenge-128/mark-anderson/raku/ch-1.raku b/challenge-128/mark-anderson/raku/ch-1.raku index 84d89f6f4f..ffb423f775 100644 --- a/challenge-128/mark-anderson/raku/ch-1.raku +++ b/challenge-128/mark-anderson/raku/ch-1.raku @@ -9,7 +9,7 @@ is-deeply max-sub-matrix(<1 0 0 0 1 0>, is-deeply max-sub-matrix(<0 0 1 1>, <0 0 0 1>, - <0 0 1 0>), ['3 x 2',]; + <0 0 1 0>), ['3 x 2']; is-deeply max-sub-matrix(<1 0 1 0 1 0 1 0 1 0 0 1>, <1 0 1 0 1 0 1 0 1 0 0 1>, -- cgit