From 561cfd4c7bba8344fc2cd31191c6b33b529828d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EC=A7=84?= Date: Fri, 7 Nov 2025 21:39:12 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[20251107]=20PGM=20/=20LV2=20/=20=EC=86=8C?= =?UTF-8?q?=EC=88=98=20=EC=B0=BE=EA=B8=B0=20/=20=EA=B9=80=EB=AF=BC?= =?UTF-8?q?=EC=A7=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" | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 "zinnnn37/202511/7 PGM LV2 \354\206\214\354\210\230 \354\260\276\352\270\260.md" diff --git "a/zinnnn37/202511/7 PGM LV2 \354\206\214\354\210\230 \354\260\276\352\270\260.md" "b/zinnnn37/202511/7 PGM LV2 \354\206\214\354\210\230 \354\260\276\352\270\260.md" new file mode 100644 index 00000000..7475c4c5 --- /dev/null +++ "b/zinnnn37/202511/7 PGM LV2 \354\206\214\354\210\230 \354\260\276\352\270\260.md" @@ -0,0 +1,67 @@ +```java +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +class PGM_LV2_소수_찾기 { + + private static int len; + private static String num; + private static boolean[] isPrime, visited; + private static Set set; + + private static void findPrime() { + Arrays.fill(isPrime, 2, 10000000, true); + + for (int i = 2; i * i <= 10000000; i++) { + if (isPrime[i]) { + for (int j = i * i; j < 10000000; j += i) { + isPrime[j] = false; + } + } + } + } + + private static void init(String numbers) { + num = numbers; + len = num.length(); + + isPrime = new boolean[10000000]; + visited = new boolean[len]; + + set = new HashSet<>(); + + findPrime(); + } + + private void dfs(int depth, int start, int candidate) { + if (depth > len) { + return; + } + + if (candidate > 0) { + if (isPrime[candidate]) { + set.add(candidate); + } + } + + for (int i = 0; i < len; i++) { + if (visited[i]) continue; + + int curNum = num.charAt(i) - '0'; + + if (curNum == 0 && depth == 0) continue; + + visited[i] = true; + dfs(depth + 1, start + 1, candidate * 10 + curNum); + visited[i] = false; + } + } + + public int solution(String numbers) { + init(numbers); + dfs(0, 0, 0); + return set.size(); + } +} +``` \ No newline at end of file From de2dc13daded1c149bfa41f2ba032e877a70aecd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EC=A7=84?= Date: Fri, 7 Nov 2025 21:44:23 +0900 Subject: [PATCH 2/2] =?UTF-8?q?[20251107]=20PGM=20/=20LV2=20/=20=EC=86=8C?= =?UTF-8?q?=EC=88=98=20=EC=B0=BE=EA=B8=B0=20/=20=EA=B9=80=EB=AF=BC?= =?UTF-8?q?=EC=A7=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...GM LV2 \354\206\214\354\210\230 \354\260\276\352\270\260.md" | 2 -- 1 file changed, 2 deletions(-) diff --git "a/zinnnn37/202511/7 PGM LV2 \354\206\214\354\210\230 \354\260\276\352\270\260.md" "b/zinnnn37/202511/7 PGM LV2 \354\206\214\354\210\230 \354\260\276\352\270\260.md" index 7475c4c5..b2cdf7ae 100644 --- "a/zinnnn37/202511/7 PGM LV2 \354\206\214\354\210\230 \354\260\276\352\270\260.md" +++ "b/zinnnn37/202511/7 PGM LV2 \354\206\214\354\210\230 \354\260\276\352\270\260.md" @@ -50,8 +50,6 @@ class PGM_LV2_소수_찾기 { int curNum = num.charAt(i) - '0'; - if (curNum == 0 && depth == 0) continue; - visited[i] = true; dfs(depth + 1, start + 1, candidate * 10 + curNum); visited[i] = false;