Optimizar ejercicio java aceptaelreto Por 3 o más 5

  • 0 Respuestas
  • 122 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Mayorga

  • *
  • Underc0der
  • Mensajes: 1
  • Actividad:
    3.33%
  • Reputación 0
    • Ver Perfil

Optimizar ejercicio java aceptaelreto Por 3 o más 5

  • en: Noviembre 26, 2019, 10:32:49 am
Hola Buenas,

Hace poco me han propuesto un ejercicio de java que esta subido en la pagina de aceptaElReto. Os dejo el link para que podais ver el enunciado: https://www.aceptaelreto.com/problem/statement.php?id=192&cat=70

He conseguido hacerlo pero tengo un problema de tiempo de ejecución y no se como resolverlo. La ejecución no puede tardar mas de 3 segundos.

Os dejo también mi código a ver si podeis decirme alguna solución para optimizar mi código.


Código: Java
  1. import java.util.ArrayList;
  2. import java.util.Scanner;
  3.  
  4. public class Main {
  5.  
  6.         private static boolean conseguido = false;
  7.        
  8.         public static void main(String[] args) {
  9.  
  10.                 Scanner sc = new Scanner(System.in);
  11.                 ArrayList<String> output = new ArrayList<String>();
  12.                
  13.                 int caso = sc.nextInt();
  14.                 ArrayList<Integer> casos = new ArrayList<Integer>();
  15.                 while(caso!=0) {
  16.                         casos.add(caso);
  17.                         caso=sc.nextInt();
  18.                 }
  19.                 sc.close();
  20.                                
  21.                 for(int i = 0; i<casos.size(); i++) {
  22.                         conseguido = false;
  23.                         int pivote = casos.get(i);
  24.                         int num = 1;
  25.                         sumarCinco(pivote,num);
  26.                         multiplicarTres(pivote,num);
  27.                         String out;
  28.                         if(conseguido) {
  29.                                 out = "SI\n";
  30.                         }else {
  31.                                 out ="NO\n";
  32.                         }
  33.                         output.add(out);
  34.                 }
  35.                                
  36.                 for(int i = 0; i<output.size();i++) {
  37.                         System.out.println(output.get(i));
  38.                 }
  39.                        
  40.                
  41.                
  42.         }
  43.  
  44.         public static int comparar(int pivote, int num){
  45.                 if(num<pivote) {
  46.                         return 1;
  47.                 }else if(num == pivote) {
  48.                         return 0;
  49.                 }
  50.                 return -1;
  51.         }
  52.        
  53.         public static void sumarCinco(int pivote, int num) {
  54.                 num += 5;
  55.                 int resultadoComparar = comparar(pivote,num);
  56.                
  57.                 if(resultadoComparar==1 && !conseguido) {
  58.                         sumarCinco(pivote,num);
  59.                         multiplicarTres(pivote,num);
  60.                 }else if(resultadoComparar==0) {
  61.                         conseguido=true;
  62.                 }
  63.                
  64.         }
  65.        
  66.         public static void multiplicarTres(int pivote,int num) {
  67.                 num *= 3;
  68.                 int resultadoComparar = comparar(pivote,num);
  69.                
  70.                 if(resultadoComparar==1 && !conseguido) {
  71.                         sumarCinco(pivote,num);
  72.                         multiplicarTres(pivote,num);
  73.                 }else if(resultadoComparar==0) {
  74.                         conseguido=true;
  75.                 }
  76.                
  77.         }
  78. }
« Última modificación: Noviembre 29, 2019, 09:28:52 am por Mayorga »

 

Comprobar que se va a utilizar X archivo y no el archivo Z [Java]

Iniciado por r00t_access

Respuestas: 3
Vistas: 2570
Último mensaje Junio 18, 2015, 08:27:14 pm
por Gus Garsaky
[Solucionado] Java - saltar de linea en linea

Iniciado por Adalher

Respuestas: 2
Vistas: 247
Último mensaje Septiembre 25, 2019, 11:30:21 pm
por ronluas
Java - Funcionamiento del método "compareTo"

Iniciado por Zepovop

Respuestas: 3
Vistas: 3104
Último mensaje Enero 17, 2017, 10:59:02 pm
por seth
Ayuda Java (Salta lectura de teclado "consola")

Iniciado por AroonVa

Respuestas: 2
Vistas: 1414
Último mensaje Octubre 26, 2018, 04:36:58 pm
por AroonVa
[SOLUCIONADO] Programa compila pero tiene errores - import java.awt.EventQueue;

Iniciado por Only

Respuestas: 3
Vistas: 3365
Último mensaje Agosto 23, 2018, 08:28:55 pm
por noxonsoftwares