Defenestration ist der Akt, jemanden oder etwas aus einem Fenster zu werfen.
- Wikipedia
Eingang
Die Eingabe besteht aus zwei Teilen:
Ein Grundriss und eine Person im Haus / Gebäude.
v><^
Stellt eine Person dar, die in die durch den Pfeil angegebene Richtung zeigt. Die Eingabe enthält genau eine Person.-
und|
repräsentieren Wände und#
repräsentiert ein Fenster.
Dieser Teil der Eingabe kann entweder als einzelne Zeichenfolge oder als Array / Liste / etc. von Linien. Es wird niemals nachgestellte oder führende Leerzeichen geben, und die Eingabe wird immer ein Rechteck sein.
Beispiel:
-----###--- | | | ^ | -----------
Eine Ganzzahl ≥ 1, die angibt, wie weit (in Zeichen) sich die Person bewegt.
Ausgabe
Die Ausgabe sollte sein
1
Wenn die Person "innerhalb" eines Fensters landet (dh nachdem sie sich um die in der Eingabe angegebene Distanz vorwärts bewegt hat, befindet sich die Person über a#
).2
wenn die Person defenestriert wurde (mit a in Kontakt kommen#
und dann weiter machen).3
Wenn die Person eine Wand berührt hat (mit einem-
oder in Kontakt kommen|
. Sobald sie die Wand berührt, stoppt die Person und fährt nicht weiter durch sie hindurch).0
wenn keine der oben genannten Aussagen zutrifft (und alles, was die Person getan hat, ist, durch den leeren Raum zu reisen).
Annahmen
Es kann davon ausgegangen werden, dass Folgendes zutrifft:
Die Person wird niemals "außerhalb der Grenzen" des Eingabebereichs reisen.
Nach der Defenestrierung kommt die Person nie mehr mit einer anderen Person
#
oder einem-
/ in Kontakt|
(Sie müssen sich also keine Gedanken darüber machen, ob2
und /1
oder ob3
beide wahr sind).
Testfälle
Für folgenden "Grundriss":
-----
| |
|###|
| |
| ^ |
In Out
1 0
2 1
3 2
Für diesen Grundriss:
> | # |
In Out
1 0
2-99 3 * that is, any input 2-99 outputs 3
Für diesen Grundriss:
||####|#|#|##|<
In Out
any 3
Letzter Testfall:
|v|
|#|
| |
| |
| |
| |
In Out
1 1
2-5 2
Has someone been for-sparta'd?
Antworten:
JavaScript (ES6),
147146 Bytes1 Byte gespart dank @NinjaBearMonkey !
Erläuterung
Nimmt einen Grundriss als Zeichenfolge und die Anzahl der Züge. Gibt eine Zahl zurück.
Prüfung
Code-Snippet anzeigen
quelle