La defenestración es el acto de arrojar a alguien o algo por la ventana.
- Wikipedia
Entrada
La entrada constará de dos partes:
Un plano de planta y una persona dentro de la casa / edificio.
v><^
representa a una persona, apuntando en la dirección indicada por la flecha. La entrada contendrá exactamente una persona.-
y|
representan paredes, y#
representa una ventana.
Esta parte de la entrada puede tomarse como una sola cadena o como una matriz / lista / etc. de lineas. Nunca habrá espacios finales o iniciales, y la entrada siempre será un rectángulo.
Ejemplo:
-----###--- | | | ^ | -----------
Un entero ≥ 1 que indica qué tan lejos (en caracteres) viaja la persona.
Salida
La salida debe ser
1
si la persona termina "dentro" de una ventana (es decir, después de avanzar la distancia especificada en la entrada, la persona está encima de a#
).2
si la persona ha sido defenestrada (entre en contacto con ay#
luego continúe más adelante).3
si la persona ha golpeado una pared (entra en contacto con una-
o|
. Una vez que golpea la pared, la persona se detiene y no continúa a través de ella).0
si nada de lo anterior es cierto (y todo lo que la persona ha hecho es viajar a través del espacio vacío).
Supuestos
Se puede suponer que todo lo siguiente es cierto:
La persona nunca viajará "fuera de los límites" del área de entrada.
Después de ser defenestrado, la persona nunca va a entrar en contacto con otra
#
o una-
/|
(por lo que no tiene que preocuparse de si2
y1
o3
son verdaderas).
Casos de prueba
Para el siguiente "plano de planta":
-----
| |
|###|
| |
| ^ |
In Out
1 0
2 1
3 2
Para este plano de planta:
> | # |
In Out
1 0
2-99 3 * that is, any input 2-99 outputs 3
Para este plano de planta:
||####|#|#|##|<
In Out
any 3
Caso de prueba final:
|v|
|#|
| |
| |
| |
| |
In Out
1 1
2-5 2
Has someone been for-sparta'd?
Respuestas:
JavaScript (ES6),
147146 bytes¡Guardado 1 byte gracias a @NinjaBearMonkey !
Explicación
Toma un plano como una cadena y el número de movimientos. Devuelve un número
Prueba
Mostrar fragmento de código
fuente