Java - lista como comando de entrada.

 
Vista:

lista como comando de entrada.

Publicado por Camilozu (1 intervención) el 05/07/2019 17:27:23
Buenos días.

Tengo que resolver un ejercicio para una clase de programación y observando el ejercicio, este es mucho mas sencillo si puedo tomar una entrada como una lista, es decir, hacer algo como:

Deque<Integer> A = new LinkedList<Integer>();

s = entrada.nextInt(); #(se ingresa la variable "A")

System.out.println(s.size()); # Acá me va a tomar la A como string y no va a funcionar, hay algun modo de "castearlo" a lista por así decirlo e imprima A.size()?

En caso contrario tendría que resolver un ejercicio con muchos if


El ejercicio es el siguiente por si a alguien le interesa;

Torres de Hanoi
(tiempo límite: 1 segundo)
Este juego, en su forma más tradicional, consiste en tres varillas verticales. En una de las varillas, generalmente la de la izquierda alineando las tres, se apila un número N de discos en tamaño decreciente de abajo a arriba considerando que todos los discos tienen tamaños (radios) diferentes. El juego consiste en pasar todos los discos de la varilla de la izquierda (la originalmente ocupada) a la varilla de la derecha pudiendo usar para ello la del medio. Sin embargo, se deben seguir tres simples reglas:
1. Sólo se puede mover un disco cada vez.
2. Un disco de mayor tamaño no puede descansar sobre uno más pequeño que él.
3. Sólo se puede desplazar el disco que se encuentre arriba en cada varilla.
La cantidad de movimientos mínimos necesarios para resolver este problema crece exponencialmente con el valor de N (para N = 2 son 3, para 3 son 7, para 4 son 15, para 5 31, para 6 63, y así). Pero calma, la idea no es resolverlo. La idea en este problema es determinar, para un determinado N (entre 2 y 10) si una secuencia de movimientos es o no válida y, en el segundo caso, si conlleva o no a alcanzar la solución.
Entrada
La entrada comienza con un valor entero positivo C no mayor a 100 que corresponde a la cantidad de casos. Cada caso se compone de una serie de líneas, no más de 5000, donde cada una tiene dos valores P y Q separados entre sí por un espacio en blanco. P determina la torre de la cual se va a mover la cima (A, B, o C) y Q determina la torre hacia la cual se va a mover ese disco (también A, B, o C). Cada caso termina con una línea que contiene los valores (sin comillas) “X X”. Esta línea no hace parte de la secuencia. Tenga en cuenta que:
 La forma como se especifican los movimientos garantiza que siempre se cumplen las reglas 1 y 3.
 Una violación de la regla 2 se considera un movimiento inválido.
 Mover de A a A, de B a B, o de C a C, no tiene mucho sentido pero se considera un movimiento válido.
 Intentar mover un disco desde una torre que se encuentra vacía se considera un movimiento inválido.
Salida
La salida debe tener C líneas, cada una con el mensaje (sin comillas ni puntuación) “secuencia invalida”, o “soluciona la torre”, o “no soluciona la torre”, según corresponda. Tenga en cuenta que se considera que una secuencia soluciona la torre si, y solo si, al terminar la secuencia (no antes), todos los discos terminan en la torre C en orden ascendente de arriba hacia abajo. Por otra lado, una secuencia se considera inválida si contiene por lo menos un movimiento inválido.

Ejemplo de entrada
3
3
A B
B C
A B
C A
B C
A B
B C
X X
3
A B
A B
A B
B C
B C
B C
X X
3
A C
A B
C B
A C
B A
B C
A C
X X

Ejemplo de salida
no soluciona la torre
secuencia invalida
soluciona la torre
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

lista como comando de entrada.

Publicado por Tom (1831 intervenciones) el 05/07/2019 18:37:09
Entonces ... ¿ tu mayor problema es que no sabes cómo leer los datos de entrada ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar