강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

andthensome님의 프로필 이미지
andthensome

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

6. 뒤집은 소수

뒤집은 소수 문제 런타임 오류 문의드립니다.

작성

·

215

0

선생님 안녕하세요. 런타임 관련하여 오류가 발생해서 문의드립니다. 코드는 아래와 같이 작성하였는데(수업 듣기 전 먼저 풀어봤습니다.) 런타임에러가 자꾸나서요.. 테스트 케이스 1번은 통과하는데 다른 테스트 케이스를 확인할 수 없어, 어디서 오류가 났는지 확인하기가 어렵습니다.. 테스트 케이스를 알려주시면 스스로 고쳐보겠습니다. 좋은 강의 감사합니다.

import java.util.*;

public class Main {
public ArrayList<Integer> solution(int n, int[] arr) {
ArrayList<Integer> primeNumbers = new ArrayList<>();
int max = findMax(arr);
int[] sieve = createSieve(max, arr);

// 판별시작
for (int i = 0; i < n; i++) {
int reversedNumber = reverseThis(arr[i]);
if (sieve[reversedNumber] == 0) { // 뒤집은 수가 소수라면 배열에 추가
primeNumbers.add(reversedNumber);
}
}

return primeNumbers;
}

private Integer reverseThis(int number) {
int reversedNumber = 0;
// 숫자 -> 문자열 valueOf -> 다시 숫자 parseInt
String strNumber = String.valueOf(number);
for (int i = strNumber.length() - 1; i >= 0; i--) {
char x = strNumber.charAt(i);
reversedNumber = reversedNumber * 10 + Integer.parseInt(String.valueOf(x));
}

return reversedNumber;
}

private int[] createSieve(int max, int[] arr) {
int[] sieve = new int[max + 1];
sieve[0] = sieve[1] = 1; // 0과 1은 소수가 아님
for (int i = 2; i <= max; i++) {
if (sieve[i] == 0) {
for (int j = i * 2; j <= max; j = j + i) { // sieve[i]는 그대로 0으로 남겨둠
sieve[j] = 1;
}
}
}

return sieve;
}

private int findMax(int[] arr) {
int max = Integer.MIN_VALUE;

for (int x : arr) {
if (x > max) {
max = x;
}
}

return max;
}
// max 찾기

// 체 생성

// 뒤집기 함수

public static void main(String[] args) {
Main T = new Main();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}

for (int x : T.solution(n, arr)) {
System.out.print(x + " ");
}
}
}

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

2번 테스트케이스입니다.

27

469 84 8851 189 69 1210 682 57 6217 484 8 3590 662 36 8275 887 17 1254 462 67 8969 141 70 5603 958 100 3843 

 

답은 

953 71 7 859

 

 

 

andthensome님의 프로필 이미지
andthensome

작성한 질문수

질문하기