Skip to content

Commit c09465f

Browse files
authored
[20251123] PGM / Lv2 / 소수 찾기 / 이강현
1 parent 79c3512 commit c09465f

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
```java
2+
import java.util.*;
3+
class Solution {
4+
static int[] number;
5+
static boolean[] visited;
6+
static int len;
7+
static Set<Integer> primes = new HashSet<>();
8+
9+
public int solution(String numbers) {
10+
len = numbers.length();
11+
number = new int[len];
12+
visited = new boolean[len];
13+
primes.clear();
14+
15+
for(int i = 0; i < len; i++){
16+
number[i] = Character.getNumericValue(numbers.charAt(i));
17+
}
18+
19+
findPrime(new StringBuilder());
20+
return primes.size();
21+
}
22+
23+
public static void findPrime(StringBuilder sb){
24+
if(sb.length() > 0){
25+
int num = Integer.parseInt(sb.toString());
26+
if(isPrime(num)){
27+
primes.add(num);
28+
}
29+
}
30+
31+
for(int i = 0; i < len; i++){
32+
if(!visited[i]){
33+
visited[i] = true;
34+
sb.append(number[i]);
35+
findPrime(sb);
36+
sb.deleteCharAt(sb.length() - 1);
37+
visited[i] = false;
38+
}
39+
}
40+
}
41+
42+
public static boolean isPrime(int num){
43+
if(num < 2) return false;
44+
if(num == 2) return true;
45+
if(num % 2 == 0) return false;
46+
47+
for(int i = 3; i * i <= num; i += 2){
48+
if(num % i == 0) return false;
49+
}
50+
return true;
51+
}
52+
}
53+
```

0 commit comments

Comments
 (0)