Puedes hacerlo ayudándote con un bucle for.
Lo primera linea de entrada te indica el número total de "piezas del puzzle".
Si te dicen que hay 15 piezas, haces un for que vaya desde el 1 hasta el 15.
Así el for te dará todos los números de piezas posible. Por cada número que te de, has de comprobar si dicho número existe en la secuencia de números que te han dado en la segunda linea de entrada. Si existe, pasas a comprobar el siguiente. Si no existe, ya has encontrado la pieza que falta.
La secuencia de números que te dan en la segunda línea, vas a tener que recogerlos en un objeto de la clase String.
Esta secuencia, serán numeros separados por espacios en blanco.
Para comprobar si cada número que te de el for, existe en dicho String, tienes varias opciones:
-
Usar una expresión regular, puede ser algo complicado si no has trabajado con expresiones regulares anteriormente.
-
Usar el metodo .contains() que posee la propia clase String. Pero me temo que puede dar respuestas falsas para este ejercicio.
Por ejemplo, supongamos que la secuencia es:
En esa secuencia falta el "1". Así que si yo le pregunto al objeto String:
Podríamos pensar que el código me dirá que la cadena NO contiene el 1. Pero en realidad me dirá que SÍ lo contiene, porque el .contains() encontrará el 1 del numero 10 y lo dará por bueno.
¿Cómo evitarlo?
Podríamos poner el 1 entre espacios en blanco al preguntarle a contains(), para que sepa que buscamos ese número individual.
Pero podría fallar también, si la secuencia fuera como esta:
Porque en esa secuencia hay un 1, pero solo tiene un espacio blanco a su derecha, no a su izquierda, así que contains() no lo dará por bueno.
Así que me temo que contains() no puede ayudarnos en este caso.
- Usar el metodo split() para convertir el String de la secuencia en un arreglo.
Por ejemplo, si a esta secuencia la dividimos con split() indicando que divida por los espacios en blanco.
En arreglo ahora tendríamos todos los números de esas secuencias separados --> {"1","3","4","5","6","7","8","9","10"}
Así que podríamos usar un segundo bucle for para recorrer este arreglo (o mejor escribir un método separado del main) y comprobar si los números que nos va dando el primer bucle for, existe dentro de este arreglo o no.
Importante tener en cuenta que el bucle for nos dará numeros con valor int, pero el arreglo tiene valores String. No podemos compararlos directamente, habrá que convertir los int a String, o bien los String a int, para poder hacer la comparacion