뒤집은 소수
package main;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public ArrayList<Integer> sol( int n , ArrayList<String> array) {
ArrayList<Integer> answer = new ArrayList<Integer>();
ArrayList<String> an = new ArrayList<String>();
// 문자열 배열을 받아서 뒤집고
for(int i = 0 ; i < n; i ++) {
an.add(new StringBuffer(array.get(i)).reverse().toString());
}
// 뒤집은 배열을 다시 숫자로 변경
for(int i = 0 ; i < n; i ++) {
answer.add( Integer.parseInt(an.get(i))) ;
}
// 숫자가 1이면 배열에서 제거하고
for(int i = 0; i < n ; i ++) {
if(answer.get(i) == 1) {
answer.remove(i);
// 2부터 자기 자신의 숫자 전까지의 숫자중에서 나눠지는 숫자는 제거한다
}
for(int j = 2 ; j < answer.get(i) ; j ++) {
if(answer.get(i) % j == 0) {
answer.remove(i);
}
}
System.out.println(answer);
}
return answer;
}
public static void main(String[] args) {
Main main = new Main();
Scanner scan = new Scanner(System.in);
int b = scan.nextInt();
ArrayList<String> array = new ArrayList<>();
for(int i = 0; i < b; i ++) {
array.add(scan.next());
}
ArrayList<Integer> arrays = main.sol(b,array);
for(int x : arrays) {
System.out.print(x);
}
}}
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 5, Size: 5
오류발생 ㅠㅠ 아시는분은 도와주십쇼 ㅠㅠ
선생님 코드와 내코드를 합친 코드
package main;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public boolean isPrime(int num) {
if(num == 1)
return false;
for(int i = 2; i < num; i ++) {
if(num % i ==0)
return false;
}
return true;
}
public ArrayList<Integer> sol( int n , ArrayList<String> array) {
ArrayList<Integer> answer = new ArrayList<Integer>();
ArrayList<String> an = new ArrayList<String>();
// 문자열 배열을 받아서 뒤집고
for(int i = 0 ; i < n; i ++) {
an.add(new StringBuffer(array.get(i)).reverse().toString());
}
// 뒤집은 배열을 다시 숫자로 변경
for(int i = 0 ; i < n; i ++) {
if(isPrime( Integer.parseInt(an.get(i)))) {
answer.add( Integer.parseInt(an.get(i))) ;
}
}
// // 숫자가 1이면 배열에서 제거하고
// for(int i = 0; i < n ; i ++) {
// if(answer.get(i) == 1) {
// answer.remove(i);
//
// // 2부터 자기 자신의 숫자 전까지의 숫자중에서 나눠지는 숫자는 제거한다
// }
// for(int j = 2 ; j < answer.get(i) ; j ++) {
// if(answer.get(i) % j == 0) {
// answer.remove(i);
// }
// }
// System.out.println(answer);
// }
//
return answer;
}
public static void main(String[] args) {
Main main = new Main();
Scanner scan = new Scanner(System.in);
int b = scan.nextInt();
ArrayList<String> array = new ArrayList<>();
for(int i = 0; i < b; i ++) {
array.add(scan.next());
}
ArrayList<Integer> arrays = main.sol(b,array);
for(int x : arrays) {
System.out.print(x);
}
}
}