Search

๊น€์ค€ํ˜ธ

2.๋ฌธ์ œ์ด๋ฆ„
3. ์ˆ˜ํ–‰์‹œ๊ฐ„[์ดˆ(s)]
4000
์ข‹์•„์š” ๋ˆ„๋ฅด๊ธฐ
์ข‹์•„์š” ์ˆ˜
: 0
5 more properties
| ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
import java.util.HashSet; import java.util.Set; // ์†Œ์ˆ˜ ์ฐพ๊ธฐ public class Solution { public static void main(String[] args) { Solution s = new Solution(); String numbers = "01521"; System.out.println(s.solution(numbers)); } /* 1. ๊ธ€์ž๋ณ„๋กœ ์ˆซ์ž ์ €์žฅ. 2. set์— ์ €์žฅ. 3. ํ•ด๋‹น ์ˆซ์ž๊ฐ€ ์†Œ์ˆ˜์ธ์ง€ ํ™•์ธํ•˜๊ณ  ๋ฆฌํ„ด */ static String[] numbersArr; static boolean[] check; static Set<Integer> savedNums = new HashSet<>(); public int solution(String numbers) { int answer = 0; // 1. ๋ฌธ์ž์—ด์„ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ํ•˜๋‚˜์”ฉ ์ €์žฅ numbersArr = numbers.split(""); check = new boolean[numbersArr.length]; dfs(0, ""); // 4. ํ•ด๋‹น ์ˆซ์ž๊ฐ€ ์†Œ์ˆ˜์ธ์ง€ ํ™•์ธํ•œ๋‹ค. return (int) savedNums.stream().filter(Solution::prime).count(); } static void dfs(int depth, String current) { if (depth > numbersArr.length) return; for (int i = 0; i < numbersArr.length; i++) { if (!check[i]) { check[i] = true; // 2. set์— ์ €์žฅํ•œ๋‹ค. savedNums.add(Integer.valueOf(current + numbersArr[i])); dfs(depth + 1, current + numbersArr[i]); check[i] = false; } } } static boolean prime(int n) { if (n < 2) return false; for (int i = 2; i * i <= n; i++) { if (n % i == 0) return false; } return true; } }
Java
๋ณต์‚ฌ
| ์ฝ”๋“œ ์„ค๋ช…ํ•˜๊ธฐ
์กฐํ•ฉ๋˜๋Š” ๋ฌธ์ž์—ด์˜ ์ฒซ๋ฒˆ ์งธ ๋ฌธ์ž๊ฐ€ โ€˜0โ€™์ผ๊ฒฝ์šฐ returnํ•˜๋Š” ์กฐ๊ฑด์„ ๋ถ™์—ฌ๋ณด์•˜์œผ๋‚˜ ์˜คํžˆ๋ ค ํšจ์œจ์„ฑ์ด ๋–จ์–ด์ ธ ์‚ญ์ œํ•˜์˜€์Œ.