Search

๊น€์ง€์ˆ˜

2.๋ฌธ์ œ์ด๋ฆ„
3. ์ˆ˜ํ–‰์‹œ๊ฐ„[์ดˆ(s)]
3600
์ข‹์•„์š” ๋ˆ„๋ฅด๊ธฐ
์ข‹์•„์š” ์ˆ˜
: 0
5 more properties
| ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
public class PrimeSearch { /* 1. DFS๋กœ ์ˆซ์ž ์กฐํ•ฉ์„ ํ•œ๋‹ค. 2. ํ•ด๋‹น ์ˆ˜๊ฐ€ ์†Œ์ˆ˜์ธ์ง€ ํŒ๋ณ„ํ•œ๋‹ค. */ String numbers; Set<Integer> set = new HashSet<>(); boolean[] check; StringBuilder result = new StringBuilder(""); public void dfs(int depth) { if (depth > numbers.length()) { return; } else { for (int i = 0; i < numbers.length(); i++) { if (check[i] == true) { result.append(numbers.charAt(i)); check[i] = false; this.set.add(Integer.parseInt(result.toString())); dfs(depth + 1); result.deleteCharAt(result.length() - 1); check[i] = true; } } } } public boolean isPrime(int n) { if (n == 0 || n == 1) return false; for (int i = 2; i * i <= n; i++) { if (n % i == 0) return false; } return true; } public int solution(String numbers) { int cnt = 0; this.numbers = numbers; this.check = new boolean[numbers.length()]; Arrays.fill(this.check, true); this.dfs(0); Iterator<Integer> iter = set.iterator(); while (iter.hasNext()) { int num = iter.next(); if (this.isPrime(num) == true) cnt++; } return cnt; } public static void main(String[] args) { PrimeSearch primeSearch = new PrimeSearch(); System.out.println(primeSearch.solution("17")); } }
Java
๋ณต์‚ฌ
| ์ฝ”๋“œ ์„ค๋ช…ํ•˜๊ธฐ
โ€ข
DFS๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ชจ๋“  ์ˆซ์ž ์ˆœ์—ด ์ฐพ๊ธฐ
โ€ข
์†Œ์ˆ˜ ํŒ๋ณ„