728x90
https://programmers.co.kr/learn/courses/30/lessons/42839
코딩테스트 연습 - 소수 찾기
한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이
programmers.co.kr
import java.util.*;
class Solution {
static Set<Integer> primes = new HashSet<>();
public int solution(String numbers) {
int answer = 0;
boolean[] visited = new boolean[numbers.length()];
func(numbers, "", 0, visited);
answer=primes.size();
return answer;
}
public void func(String numbers, String num, int level, boolean[] visited) {
if(level>=numbers.length()) {
return;
}
for(int i=0;i<numbers.length();i++) {
if(!visited[i]) {
visited[i]=true;
num=num.concat(Character.toString(numbers.charAt(i)));
int temp = Integer.parseInt(num);
if(check(temp)) primes.add(temp);
func(numbers, num, level+1, visited);
visited[i]=false;
num=num.substring(0, num.length()-1);
}
}
}
//check num whether prime or not
public boolean check (int num) {
if(num<2) return false;
if(num==2) return true;
for(int i=2;i<num;i++) {
if(num % i ==0) return false;
}
return true;
}
}
- 소수 찾기
- 재귀 사용 안하고 하는 방법
공부하기!
728x90
'공부 > Algorithms w.Java' 카테고리의 다른 글
프로그래머스-가장 큰 수; Java (0) | 2022.02.20 |
---|---|
프로그래머스-기지국 설치; Java (0) | 2022.02.19 |
프로그래머스-숫자 문자열과 영단어; Java (0) | 2022.02.08 |
프로그래머스-실패율; Java (0) | 2022.02.08 |
백준 1149-RGB 거리; Java (0) | 2022.02.05 |