¡Oh, no, estoy perdido en el camino para encontrar los grandes tesoros de Marakov! Y todo lo que tengo son estas instrucciones inútiles que se parecen a S10R10D30... ¡No tengo idea de lo que significan! ¿Me puedes ayudar?
Desafío
Dadas las instrucciones que consisten en N E S W U D L R 1 2 3 4 5 6 7 8 9 0, indique qué tan lejos estaré de donde comencé cuando sigo esas direcciones (es decir, Distancia Euclidiana).
N E S W referirse a mí girando hacia el norte, este, sur y oeste;
U D L Rrefiérase a mí girando hacia arriba, hacia abajo, hacia la izquierda y hacia la derecha (Entonces NRes lo mismo que E, y así es SL; SLLes lo mismo que N). Arriba significa seguir adelante; Abajo significa darse la vuelta.
Después de cada dirección de la letra habrá un número, que es qué tan lejos llegaré en esa dirección. N10E20significa ir hacia el norte 10 unidades, luego girar hacia el este e ir hacia el este 20 unidades.
Detalles de entrada
- La entrada siempre comenzará con uno de
NESW(por lo que no es necesario tener en cuenta la entrada en blanco). - Se permiten instrucciones de dos letras seguidas.
NEdebe interpretarse, "Gire al norte, luego gire inmediatamente al este". Es lo mismo que soloE.SLLes "Gire al sur, luego gire inmediatamente a la izquierda dos veces". Es lo mismo queN. - Todos los números serán enteros (tenga en cuenta que
.no está en el conjunto de caracteres) - La entrada solo consistirá en
NESWUDLR1234567890(si necesita algo más, como '\ 0' en C; o si las funciones de entrada de su idioma tienen una nueva línea final, o algo así, está bien).
Salida
- La norma.
- Si utiliza una función, debe generar un tipo de datos numérico o una cadena.
- Debe tener una precisión de 3 decimales.
Casos de prueba
N10:10N10E10:14.1421N10S10:0NSEWUDLR10:10N100RR20E300D40L12:268.7452ERR10LL20UN30D100:70.71067
El programa Python poco imaginativo que solía hacer.
Victorioso
Esto es codegolf, ¡así que los bytes más bajos después de una semana ganan!
NESWUDLR1234567890?