updated at 2022. 12. 29. 오전 4:23:06
This commit is contained in:
@@ -1,18 +1,30 @@
|
|||||||
// [문제 링크]: https://school.programmers.co.kr/learn/courses/30/lessons/12921
|
// [문제 링크]: https://school.programmers.co.kr/learn/courses/30/lessons/42839
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
|
||||||
class Solution {
|
class Solution {
|
||||||
public int solution(int n) {
|
public int solution(String numbers) {
|
||||||
|
HashSet<Integer> hs = new HashSet<>();
|
||||||
|
per("",numbers,hs);
|
||||||
int answer = 0;
|
int answer = 0;
|
||||||
for(int a = 2; a<=n; a++){
|
while(hs.iterator().hasNext()){
|
||||||
int t = 0;
|
int a = hs.iterator().next();
|
||||||
for(int b=2; b<=Math.sqrt(a); b++){
|
hs.remove(a);
|
||||||
if(a%b==0) {
|
if(a==2) answer++;
|
||||||
t = 1;
|
if(a%2!=0 && prime(a)) answer++;
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(t == 0) answer+= 1;
|
|
||||||
}
|
}
|
||||||
return answer;
|
return answer;
|
||||||
}
|
}
|
||||||
|
private boolean prime(int n){
|
||||||
|
if(n==0||n==1) return false;
|
||||||
|
for(int i=3; i<=(int)Math.sqrt(n); i+=2){
|
||||||
|
if(n%i==0) return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
private void per(String pre, String str, HashSet<Integer> hs){
|
||||||
|
int len = str.length();
|
||||||
|
if(!pre.equals("")) hs.add(Integer.valueOf(pre));
|
||||||
|
for (int i = 0; i < len; i++) per(pre + str.charAt(i), str.substring(0,i) + str.substring(i+1, len),hs);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user