https://school.programmers.co.kr/learn/courses/30/lessons/42839
import java.util.*;
class Solution {
Set<Integer> set;
public int solution(String numbers) {
set = new HashSet<>(); // ✅ 매 호출마다 초기화로 해결
permutation("", numbers);
return (int) set.stream().filter(this::isPrime).count();
}
void permutation(String cur, String rem) {
if (!cur.isEmpty()) set.add(Integer.parseInt(cur));
for (int i = 0; i < rem.length(); i++)
permutation(cur + rem.charAt(i),
rem.substring(0,i) + rem.substring(i+1));
}
boolean isPrime(int n) {
if (n < 2) return false;
for (int i = 2; i <= Math.sqrt(n); i++)
if (n % i == 0) return false;
return true;
}
}'메모 > 알고리즘의 뇌' 카테고리의 다른 글
| [알고리즘문제풀이/JAVA]#4 정렬: K번째수 (0) | 2021.06.25 |
|---|---|
| [알고리즘문제풀이/JAVA]#3 위장 (작성중) (0) | 2021.06.25 |
| [알고리즘문제풀이/JAVA]#2 전화번호 목록 (0) | 2021.06.25 |
| [알고리즘문제풀이/JAVA]#1 완주하지 못한 선수 (0) | 2021.04.16 |