Calcular desplazamiento de un robot
Publicado por Alejo (2 intervenciones) el 24/08/2022 00:14:18
Un robot se desplaza horizontalmente por el eje X. Recibe las instrucciones de movimiento en un string, que contiene "I" para moverse una posición a la izquierda y "D" para moverse una posición a la derecha. Parte de una posición dada. Mostrar cuántos puntos diferentes visita el robot cuando se ejecutaron todos los comandos. Un punto se considera visitado si coincide con la posición del robot antes o después de ejecutar algún comando.
formato de input
Lee la secuencia de comandos y luego la posición inicial.
La secuencia tiene como máximo 100 comandos y como mínimo 1 comando. Los comandos son "I" o "D". La posición inicial es un entero entre -10000 y 10000, ambos inclusive. Asumir datos válidos.
formato de output
Imprimir la cantidad de puntos diferentes alcanzados.
Ejemplo de input
II
0
Lo que deberia mostrar
3
Esto es lo que hice, pero claramente esta mal dado que no encuentro la forma de que cuando el robot pase por una posicion "ya conocida" no sume a la cantidad de posiciones recorridas.
Gracias!
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
public static void main(String args[] ) throws Exception {
String desplazamiento;
Scanner in= new Scanner (System.in);
desplazamiento = in.nextLine();
int cantpos;
int cantD=0;
int cantI=0;
int posicion;
for (int i=0;i<desplazamiento.length();i++){
if(desplazamiento.charAt(i)=='D'){
cantD+=1;
}
if(desplazamiento.charAt(i)=='I'){
cantI-=1;
}
}
posicion =(cantD+cantI);
cantpos=desplazamiento.length()-Math.abs(posicion);
System.out.println(cantpos);
}
}
formato de input
Lee la secuencia de comandos y luego la posición inicial.
La secuencia tiene como máximo 100 comandos y como mínimo 1 comando. Los comandos son "I" o "D". La posición inicial es un entero entre -10000 y 10000, ambos inclusive. Asumir datos válidos.
formato de output
Imprimir la cantidad de puntos diferentes alcanzados.
Ejemplo de input
II
0
Lo que deberia mostrar
3
Esto es lo que hice, pero claramente esta mal dado que no encuentro la forma de que cuando el robot pase por una posicion "ya conocida" no sume a la cantidad de posiciones recorridas.
Gracias!
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
public static void main(String args[] ) throws Exception {
String desplazamiento;
Scanner in= new Scanner (System.in);
desplazamiento = in.nextLine();
int cantpos;
int cantD=0;
int cantI=0;
int posicion;
for (int i=0;i<desplazamiento.length();i++){
if(desplazamiento.charAt(i)=='D'){
cantD+=1;
}
if(desplazamiento.charAt(i)=='I'){
cantI-=1;
}
}
posicion =(cantD+cantI);
cantpos=desplazamiento.length()-Math.abs(posicion);
System.out.println(cantpos);
}
}
Valora esta pregunta


0