- 생각
DFS를 통해 N자리의 각 자리 모두 소수인 숫자만 추가해주었다.
- 코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
static int N;
static StringBuilder sb;
public static void main(String[] args) throws Exception {
SetData();
System.out.println(sb.toString());
}
private static void SetData() throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
sb = new StringBuilder();
dfs("");
}
private static void dfs(String s) {
if (s.length() == N) {
sb.append(s + '\n');
return;
}
for (int i = 1; i <= 9; i++) {
if (Prime(Integer.parseInt(s + i))) {
dfs(s + i);
}
}
}
private static boolean Prime(int num) {
if (num == 1)
return false;
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0)
return false;
}
return true;
}
}
'algorithm' 카테고리의 다른 글
[BOJ/JAVA] 백준 17417번 : 게리멘더링 (0) | 2021.01.20 |
---|---|
[BOJ/JAVA] 백준 2606번 : 바이러스 (0) | 2021.01.19 |
[BOJ/JAVA] 백준 2665번 : 미로만들기 (0) | 2021.01.15 |
[BOJ/JAVA] 백준 10026번 : 적록색약 (0) | 2021.01.14 |
[BOJ/JAVA] 백준 3109번 : 빵집 (0) | 2021.01.13 |