From c09465f64df8c36b6befeb8579877c28e3d61a86 Mon Sep 17 00:00:00 2001 From: lkhyun <102892446+lkhyun@users.noreply.github.com> Date: Sun, 23 Nov 2025 18:45:44 +0900 Subject: [PATCH] =?UTF-8?q?[20251123]=20PGM=20/=20Lv2=20/=20=EC=86=8C?= =?UTF-8?q?=EC=88=98=20=EC=B0=BE=EA=B8=B0=20/=20=EC=9D=B4=EA=B0=95?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4\354\210\230 \354\260\276\352\270\260.md" | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 "lkhyun/202511/23 PGM Lv2 \354\206\214\354\210\230 \354\260\276\352\270\260.md" diff --git "a/lkhyun/202511/23 PGM Lv2 \354\206\214\354\210\230 \354\260\276\352\270\260.md" "b/lkhyun/202511/23 PGM Lv2 \354\206\214\354\210\230 \354\260\276\352\270\260.md" new file mode 100644 index 00000000..c6742d5f --- /dev/null +++ "b/lkhyun/202511/23 PGM Lv2 \354\206\214\354\210\230 \354\260\276\352\270\260.md" @@ -0,0 +1,53 @@ +```java +import java.util.*; +class Solution { + static int[] number; + static boolean[] visited; + static int len; + static Set primes = new HashSet<>(); + + public int solution(String numbers) { + len = numbers.length(); + number = new int[len]; + visited = new boolean[len]; + primes.clear(); + + for(int i = 0; i < len; i++){ + number[i] = Character.getNumericValue(numbers.charAt(i)); + } + + findPrime(new StringBuilder()); + return primes.size(); + } + + public static void findPrime(StringBuilder sb){ + if(sb.length() > 0){ + int num = Integer.parseInt(sb.toString()); + if(isPrime(num)){ + primes.add(num); + } + } + + for(int i = 0; i < len; i++){ + if(!visited[i]){ + visited[i] = true; + sb.append(number[i]); + findPrime(sb); + sb.deleteCharAt(sb.length() - 1); + visited[i] = false; + } + } + } + + public static boolean isPrime(int num){ + if(num < 2) return false; + if(num == 2) return true; + if(num % 2 == 0) return false; + + for(int i = 3; i * i <= num; i += 2){ + if(num % i == 0) return false; + } + return true; + } +} +```