Diese Herausforderung wurde stark von diesem Stapelüberlauf-Beitrag inspiriert .
Herausforderung
Bestimmen Sie anhand einer Reihe von Kunden, wann sie einen Raum betreten und wann sie ihn verlassen, die Zeitspanne (n), in der der Raum eine maximale Anzahl von Personen hat. Die Zeitauflösung sollte auf die Minute genau sein.
Wenn es zum Beispiel sind drei Clients 8 - 10
, 9 - 11
, 10 - 12
, dann die richtige Antwort wäre 9 - 11
; Während dieses Zeitraums befinden sich zwei Kunden im Raum, was der größtmögliche ist.
Eingang
Die Eingabe ist eine Liste von Paaren in irgendeiner Form. Dies kann entweder eine Liste mit 2 Tupeln, eine Liste mit gerader Länge mit verschachtelten Elementen usw. oder ein beliebiges vernünftiges Eingabeformat sein. Die Zeiten können in jedem vernünftigen Format angegeben werden, entweder in 12- oder 24-Stunden-Zeit. Sie können die Zeit auch als Anzahl der Minuten nach Mitternacht eingeben.
Ausgabe
Die Ausgabe sollte eine Liste von Paaren in irgendeiner Form sein, aber die Ausgabe ist strenger. Die Ausgabe kann keine flache Liste sein, sondern muss eine Liste von 2 Tupeln oder eine Liste von Listen usw. sein. Die Zeiten können in jedem vernünftigen Format entweder in 12- oder 24-Stunden-Zeit ausgegeben werden. Sie können die Zeit auch als Anzahl der Minuten nach Mitternacht ausgeben.
Beispiele
input
output
INPUT
08:00 - 10:00
09:00 - 11:00
10:00 - 12:00
OUTPUT
09:00 - 11:00
INPUT
08:20 - 09:20
09:00 - 09:10
08:00 - 09:30
08:50 - 10:40
OUTPUT
09:00 - 09:10
INPUT
08:00 - 10:00
09:00 - 10:00
09:30 - 11:00
OUTPUT
09:30 - 10:00 # The output is not always in the input list
INPUT
00:00 - 02:00
01:00 - 03:00
04:00 - 06:00
05:00 - 07:00
OUTPUT # This is the expected output for when there are multiple time ranges with the same "business".
01:00 - 02:00
05:00 - 06:00
Sie können davon ausgehen, dass das zweite Mal in einem Paar immer nach dem ersten Mal liegt. Zeitbereiche laufen nicht über Mitternacht.
09:00 - 10:00, 10:00 - 11:00
eine gültige Ausgabe für den ersten Testfall?Antworten:
Brachylog , 25 Bytes
Probieren Sie es online aus!
Diese Antwort hat eine offensichtliche Struktur, die noch deutlicher wird, wenn Sie sie so schreiben:
Leider führt die Auswertungsreihenfolge von Brachylog dazu, dass das Programm in eine Endlosschleife gerät, wenn Sie versuchen, die betreffende Struktur auszunutzen. Dennoch ist es durchaus möglich, sich eine Brachylog-ähnliche Sprache vorzustellen, in der diese viel kürzer ist.
quelle
Gelee ,
222120 BytesProbieren Sie es online aus!
quelle
Brachylog , 58 Bytes
Probieren Sie es online aus!
Dies muss die längste Brachylog-Antwort aller Zeiten sein ...
quelle
Pyth ,
3324 BytesProbieren Sie es online aus!
quelle
Mathematica, 104 Bytes
Dies setzt natürlich voraus, dass mehrere leistungsstarke Mathematica-Einbauten korrekt sind ...
quelle