csct3434
[level 2] 소수 찾기 - 42839 본문
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import java.util.HashSet;
import java.util.Set;
class Solution {
private Set<Integer> answer = new HashSet<>();
public int solution(String numbers) {
boolean[] visited = new boolean[numbers.length()];
int[] selected = new int[numbers.length()];
for (int count = 1; count <= numbers.length(); count++) {
solve(numbers.toCharArray(), visited, selected, 0, count);
}
return answer.size();
}
private void solve(char[] numbers, boolean[] visited, int[] selected, int depth, int count) {
if (depth == count) {
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < count; i++) {
stringBuilder.append(selected[i]);
}
int number = Integer.parseInt(stringBuilder.toString());
if (isPrime(number)) {
answer.add(number);
}
return;
}
for (int i = 0; i < numbers.length; i++) {
if (!visited[i]) {
visited[i] = true;
selected[depth] = numbers[i] - '0';
solve(numbers, visited, selected, depth + 1, count);
visited[i] = false;
}
}
}
private boolean isPrime(int number) {
if (number <= 1) {
return false;
}
for (int i = 2; i * i <= number; i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
}
'프로그래머스' 카테고리의 다른 글
[level 2] 조이스틱 - 42860 (0) | 2024.02.28 |
---|---|
[level 2] 카펫 - 42842 (0) | 2024.02.28 |
[level 2] H-Index - 42747 (0) | 2024.02.28 |
[level 2] 가장 큰 수 - 42746 (0) | 2024.02.28 |
[level 2] 더 맵게 - 42626 (0) | 2024.02.28 |