컴공생의 다이어리

[자바, Java] 백준 2023번 : 수들의 합 5 본문

Development/Algorithm & Coding Test

[자바, Java] 백준 2023번 : 수들의 합 5

컴공 K 2023. 2. 10. 01:00

백준 2023번 : 수들의 합 5

(문제 바로가기)

 

 

내 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class baekjoon_2023 {
    private static int N;
    private static StringBuilder sb = new StringBuilder();

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        N = Integer.parseInt(br.readLine());
        recursive(0, 0);
        System.out.print(sb.toString());
    }

    // 오른쪽에 숫자 하나씩 추가하며 N자리 신기한 소수 만들기
    static void recursive(int depth, int prev) {
        if (depth == N) {  // N자리 신기한 소수 완성
            sb.append(prev).append('\n');   // 출력할 결과에 소수 추가
            return;
        }

        for (int i = 1; i <= 9; i++) {
            int temp = prev * 10 + i; // 곱하기 10을 통해 한자리 증가 시키고 i 더해서 새로운 숫자 만들기
            if (isPrime(temp)) recursive(depth + 1, temp);
        }
    }

    // 소수인지 판별
    static boolean isPrime(int num) {
        if (num < 2) return false;
        for (int i = 2; i <= Math.sqrt(num); i++) {
            if (num % i == 0) return false;
        }
        return true;
    }
}

 

 

728x90
Comments