• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

배열 2_6번 런타임에러

23.04.13 15:54 작성 조회수 248

0

스크린샷 2023-04-13 오후 3.52.27.png스크린샷 2023-04-13 오후 3.52.38.png배열을 이용하지 않고 StringBuilder 를 이용해서 코드를 짜봤는데 런타임에러가 뜹니다

따로 이유가 있나요?

답변 1

답변을 작성해보세요.

0

안녕하세요^^

제가 채점해 볼 수 있도록 풀코드를 텍스트 파일로 올려주세요. 채점사이트가 스트링빌더를 인식 못 할 수 있습니다.

opix0306님의 프로필

opix0306

질문자

2023.04.14




import java.util.Scanner;

public class Main {
    public String solution(int n) {
        StringBuilder answer = new StringBuilder();
        Scanner sa = new Scanner(System.in);
        for (int i = 0; i < n; i++) {
            int num = sa.nextInt(); // 자연수 입력 받기

            // 자연수를 뒤집기 위해 StringBuilder 클래스를 사용
            StringBuilder sb = new StringBuilder(String.valueOf(num));
            sb.reverse(); // StringBuilder 클래스의 reverse() 메서드를 사용하여 뒤집기

            // 뒤집은 수가 소수인지 확인하기
            int reverseNum = Integer.parseInt(sb.toString());
            boolean isPrime = true; // 소수 여부를 저장할 변수

            if (reverseNum <= 1) { // 뒤집은 수가 1보다 작거나 같으면 소수가 아님
                isPrime = false;
            } else { // 뒤집은 수가 2 이상인 경우 소수 여부 확인
                for (int j = 2; j <= Math.sqrt(reverseNum); j++) {
                    if (reverseNum % j == 0) {
                        isPrime = false;
                        break;
                    }
                }
            }

            // 소수이면 출력하기
            if (isPrime) {
                if (answer.length() > 0) answer.append(" ");
                answer.append(reverseNum);

            }
        }
        return answer.toString().trim();
    }



    public static void main(String[] args) {
        Main T = new Main();
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();

        System.out.println(T.solution(n));


    }
}

네. 모든 케이스를 직접 다 해봤는데 어러 없이 답이 잘 나옵니다. 아무래도 채점사이트가 스트링빌더를 잘 못 인식하는게 아닌가 싶습니다. 코드는 전혀 문제 없습니다.

opix0306님의 프로필

opix0306

질문자

2023.04.14

네 감사합니다