import java.util.HashSet;
class Solution {
static HashSet<Integer> primes;
static boolean[] visited;
static int N;
public int solution(String numbers) {
N = numbers.length();
primes = new HashSet<>();
visited = new boolean[N];
makeNumber("",numbers);
return primes.size();
}
static void makeNumber(String s,String numbers){
if(s.length()>N) return;
if(s.length()!=0){
int num = Integer.parseInt(s);
if(isPrime(num)) primes.add(num);
}
for(int i=0; i<N; i++){
if(visited[i]==false){
visited[i]=true;
makeNumber(s+numbers.charAt(i),numbers);
visited[i]=false;
}
}
}
static boolean isPrime(int n){
if(n<=1) return false;
for(int i=2; i<=Math.sqrt(n); i++){
if(n%i==0) return false;
}
return true;
}
}
'NOTE > 프로그래머스' 카테고리의 다른 글
자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 - Oracle (0) | 2023.10.04 |
---|---|
가격대 별 상품 개수 구하기 - Oracle (0) | 2022.10.15 |
피로도 (0) | 2022.10.15 |
모음사전 (1) | 2022.10.15 |
조건별로 분류하여 주문상태 출력하기 - Oracle (0) | 2022.10.12 |