Hi,
can anyone tell me why my code needs too long to run. This happens only in the verification process, but not if I run it. Please can anyone help me or just give me a hint where i have to or should look.
Thanks in advance
Steffen
package de.codegym.task.task07.task0713;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
/*
Javarella spielen
*/
public class Solution {
public static void main(String[] args) throws Exception {
//schreib hier deinen Code
ArrayList<Integer> input = new ArrayList<Integer>(1);
ArrayList<Integer> divByThree = new ArrayList<Integer>(1);
ArrayList<Integer> divByTwo = new ArrayList<Integer>(1);
ArrayList<Integer> other = new ArrayList<Integer>(1);
boolean debug = false;
int i = 0;
input = fuReadFromConsole(debug);
/*
while(true){
if(i == input.size()+1){
break;
}else{
System.out.println(input.get(i));
i++;
}
}
i = 0;
*/
divByTwo = fuDivByX(input, 2, debug);
divByThree = fuDivByX(input, 3, debug);
other = input;
other = createOther(input, divByTwo, debug);
other = createOther(other, divByThree, debug);
/*
while(true){
if(i == other.size()-1){
break;
}else{
System.out.println(other.get(i));
i++;
}
}
i = 0;
*/
listeAusdrucken(divByThree, debug);
listeAusdrucken(divByTwo, debug);
listeAusdrucken(other, debug);
}
public static ArrayList<Integer> fuReadFromConsole(boolean debug) throws Exception{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
ArrayList<Integer> input = new ArrayList<Integer>(1);
String tmp;
int a;
int i = 0;
if(debug){
System.out.println("readFromConsole: ");
}
while(i<20){
tmp = in.readLine();
if(debug){
System.out.println("tmp: " + tmp);
}
//Input validation
if(tmp == null){
break;
}
a = Integer.parseInt(tmp);
if(debug){
System.out.println("Integer: " + a);
}
input.add(a);
i++;
}
if(debug){
System.out.println("Input:");
while(i < input.size()){
/*
if(i == input.size()){
break;
}
*/
System.out.println(input.get(i));
i++;
}
i = 0;
System.out.println("");
}
return input;
}
public static ArrayList<Integer> fuDivByX(ArrayList<Integer> input, int zahl, boolean debug){
ArrayList<Integer> result = new ArrayList<Integer>(1);
int i = 0;
int tmp;
if(debug){
System.out.println("fudivBy " + zahl + ": ");
}
while(i < input.size()){
//System.out.println("i: " + i);
/*
if(i == input.size()){
break;
}
*/
tmp = input.get(i);
if(debug){
System.out.println("tmp: " + tmp);
}
if(tmp % zahl == 0){
result.add(tmp);
if(debug){
System.out.println("divby " + zahl + ": " + tmp);
}
}
i++;
}
if(debug){
i = 0;
System.out.println("");
System.out.println("result:");
System.out.println("result.size(): " + result.size());
while(i < result.size()){
//System.out.println("i: " + i);
/*
if(i == result.size()){
break;
}
*/
tmp = result.get(i);
System.out.println(tmp);
i++;
}
i = 0;
System.out.println("");
}
return result;
}
public static ArrayList<Integer> createOther(ArrayList<Integer> base, ArrayList<Integer> extend, boolean debug){
ArrayList<Integer> result = new ArrayList<Integer>(1);
if(debug){
System.out.println("createOther");
}
result = base;
for(int i = 0; i < extend.size(); i++){
base.remove(extend.get(i));
if(debug){
System.out.println("Removed " + extend.get(i) + " from the base list.");
}
}
if(debug){
System.out.println("");
}
return result;
}
public static void listeAusdrucken(List<Integer> liste, boolean debug) {
//schreib hier deinen Code
if(debug){
System.out.println("listeAusdrucken");
System.out.println("liste.size(): "+ liste.size());
}
/*
for(int j = 0; j < liste.size()-1; j++){
System.out.println(liste.get(j));
}
*/
int i = 0;
int tmp;
int check = liste.size();
while(i < check){
/*
if(i >= check){
break;
}
*/
tmp = liste.get(i);
if(debug){
System.out.println("i: " + i);
System.out.println("liste.get(" + i + "): " + tmp);
}
System.out.println(tmp);
i++;
}
if(debug){
System.out.println("");
}
}
}