Nota: Esto se basa en dos caminos divergidos en un bosque amarillo (parte 2) , un desafío previo mío. Debido a la popularidad de esa pregunta y dos caminos divergieron en un bosque amarillo (parte 1) , quería hacer un tercero. Pero los primeros 2 fueron demasiado fáciles (una respuesta de 2 bytes en el primero, una respuesta de 15 bytes en el segundo). Así que hice algo más complejo ...
La inspiración
Este desafío está inspirado en el famoso poema de Robert Frost, The Road Not Taken :
Dos caminos se bifurcaban en un bosque amarillo,
y lo siento, no podía viajar a la vez
y ser un viajero, me quedé parado
y miré hacia abajo lo más lejos que pude
hacia donde se doblaba en la maleza;... 2 párrafos recortados ...
Voy a decir esto con un suspiro
En algún lugar de siglos en adelante:
dos caminos divergieron en un bosque, y yo
... tomé el menos transitado,
y eso ha marcado la diferencia.
Observe la penúltima línea I took the one less traveled by,
,.
La historia de fondo
Te asignaron para ayudar a un aventurero ciego que camina por una carretera y se inspiró en The Road Not Taken . El aventurero se está acercando a una bifurcación en el camino y le gustaría tomar el camino menos transitado. Debes encontrar dónde está realmente el aventurero y decirle al aventurero a quién recurrir.
El reto
Su objetivo es encontrar el camino menos transitado en su mapa donde el camino se bifurca. Su mapa es una cadena que contiene nuevas líneas (o \n
, si lo prefiere) y tiene un ancho y alto desconocidos. En el mapa, las carreteras están formadas por dígitos del 0 al 9 , la intersección está formada por #
s. Debe encontrar el camino en el que se encuentra actualmente, y fuera de los otros caminos, el camino más transitado y el camino menos transitado por su aventurero ciego. Woods en tu mapa está representado por un espacio. Aquí hay un mapa simple:
2 2
1 0
#
2
2
Este mapa tiene 5 de ancho y 5 de alto. Observe cómo la carretera se bifurca en forma de Y. La Y puede estar orientada de cualquier manera, por lo que debe poder entender un mapa "girado".
Que #
significa
Donde el mapa se bifurca, habrá un #
. Esto no afecta la puntuación de ninguna ruta.
¿Qué significan realmente los números?
Cada ruta (una línea de números, puede tener una curva) tiene una puntuación. La puntuación de una ruta se determina sumando sus dígitos, por lo que para el primer ejemplo, la primera ruta (desde la esquina superior izquierda, en el sentido de las agujas del reloj) tiene una puntuación de 2 + 1 = 3, la segunda tiene 2 + 0 = 2 y la tercera tiene 2 + 2 = 4. Las carreteras pueden contener números conectados en diagonal.
Encontrar donde estás
Estás en el camino con la puntuación más alta. Los otros 2 caminos son el camino más transitado y el camino menos transitado. Necesitas encontrar el camino con la puntuación más baja.
Decirle a tu viajero a dónde ir
Debe decirle a su viajero que vaya "izquierda" o "derecha". Tenga en cuenta que las instrucciones son desde el punto de vista de su viajero (él está de frente al tenedor).
Mapas de ejemplo
14
9#
04
Salida: "derecha" (el viajero está en la 9
carretera, 0 + 4 <1 + 4
9
9
9
9
9
#
8 8
8 8
88 88
8 7
Salida: "izquierda" (el viajero está en el 99999
camino, 8 + 8 + 8 + 8 + 8> 8 + 8 + 8 + 8 + 7
02468
#98765
13579
Salida: "derecha" (el viajero está en la 98765
carretera, 0 + 2 + 4 + 6 + 8 <1 + 3 + 5 + 7 + 9)
4 2
4 2
#
4
4
2
2
Salida: "derecha" (el viajero está en la 4422
carretera, 4 + 4> 2 + 2)
9
9
9
#
8 7
8 7
8 7
Salida "izquierda" (el viajero está en la 999
carretera, 8 + 8 + 8> 7 + 7 + 7
Cosas para saber:
- Los mapas se rellenarán con espacios para que cada línea tenga la misma longitud.
- Debe enviar a STDOUT / console / file la cadena
left
oright
, opcionalmente, seguido de una nueva línea final. - Debe tomar la entrada como una cadena que contiene nuevas líneas,
\n
s, o una matriz / lista de líneas (cada línea es una cadena). Donde se coloca esa entrada debe ser una función, argumento de línea de comando, archivo o STDIN una línea a la vez o similar. Una variable no es un dispositivo de entrada aceptable (a menos que sea un parámetro de función). Del mismo modo, las expresiones de función en JS y otros lenguajes deben asignarse a una variable. - Este es el código de golf , por lo que gana la respuesta más corta en bytes.
- Lagunas estándar prohibidas
Cosas que puedes asumir
- Su aporte será válido. Nada como esto será probado para:
0 0 0 0 0 # # 0 0
- Los puntajes de los caminos nunca estarán empatados.
- La entrada puede ser de cualquier longitud en ancho o alto, menor que el límite de cadena de su idioma.
- Siempre habrá al menos 1 espacio entre las 2 rutas.
- Los caminos pueden tener curvas, giros, etc. Estos son caminos, no autopistas.
¿Tiene alguna pregunta? ¡Pregúntame a continuación en los comentarios y feliz golf!
fuente
#
siempre en el centro horizontalmente?Respuestas:
D ,
348321312302 bytesSin golf
Pruébalo en línea!
fuente
Python 2, 304 bytes
Pruébalo en línea
Este programa deduce la dirección de las carreteras y la gira hacia arriba para usar mi solución de la parte 2 de este desafío.
fuente