
🙆♀️ 정답 풀이
import java.util.*; class Solution { static int answer; static Set<Integer> decimalList = new HashSet<>(); public int solution(String numbers) { answer = 0; char[] numberArr = numbers.toCharArray(); char[] output = new char[numberArr.length]; boolean[] visited = new boolean[numberArr.length]; for(int i=0;i<numberArr.length;i++){ permutation(numberArr,output,visited,0,i+1); } answer = decimalList.size(); return answer; } private static void permutation(char[] arr, char[] res,boolean[] visited,int depth, int r){ if(depth==r){ StringBuilder sb = new StringBuilder(); for(int i=0;i<r;i++){ sb.append(res[i]); } if(checkPrime(sb.toString())){ decimalList.add(Integer.parseInt(sb.toString())); } } for(int i=0;i<arr.length;i++){ if(!visited[i]){ visited[i] = true; res[depth] = arr[i]; permutation(arr,res,visited,depth+1,r); visited[i] = false; } } } private static boolean checkPrime(String str){ int checkNum = Integer.parseInt(str); if(checkNum<=1) return false; if(checkNum==2) return true; for(int i=2;i<checkNum;i++){ if(checkNum%i==0) return false; } return true; } }