728x90
300x250
programmers.co.kr/learn/courses/30/lessons/42839
1. 종이 조각으로 만들 수 있는 수 찾기 - 순열
2. 소수 찾기
import java.util.*;
class Solution {
public static boolean visit[];
public static HashSet<Integer> set = new HashSet<Integer>();
public static String nums;
public int solution(String numbers) {
int answer = 0;
nums = numbers;
visit = new boolean[nums.length()];
Arrays.fill(visit,false);
//1. 종이조각으로 만들 수 있는 수 저장
for(int i=0;i<nums.length();i++){
// System.out.println("===i :"+i+"====");
visit[i]=true;
dfs(i,String.valueOf(nums.charAt(i)));
visit[i]=false;
}
//2. 소수 판별
Iterator iter = set.iterator();
while(iter.hasNext()){
boolean flag= false;
Integer n = (Integer)iter.next();
if(n == 1 || n==0)
flag=true;
for(int i =2;i<n;i++){
if(n%i==0)
flag=true;
}
if(!flag){
System.out.println(n);
answer++;
}
}
System.out.println(set);
return answer;
}
public void dfs(int idx, String num) {
//종료조건
//자리수 이상?
if(num.length()>nums.length()){
return;
}
// System.out.println(num);
set.add(Integer.parseInt(num));
for(int i=0;i<nums.length();i++){
if(visit[i])
continue;
visit[i]=true;
dfs(i,num+nums.charAt(i));
visit[i]=false;
}
}
}
완전 올만에 머리를 다시 쓸겸 알고리즘 공부를 해봤다. 오랜만에 해서 역시,, 허덕이는군 ^_ㅜ
머리야~ 말랑말랑해져라
728x90
'알고리즘 > 탐색' 카테고리의 다른 글
백준 11068번: 회문인 수 [브루트포스][완전탐색][구현] - Java (0) | 2023.04.25 |
---|---|
백준 10448번: 유레카 이론 [완전탐색][브루트포스] -Java (0) | 2023.04.19 |
백준 2798번: 블랙잭 [브루트포스][BP] - Java (0) | 2020.10.02 |
백준 1654번: 랜선 자르기 [이분탐색] - Java (0) | 2020.09.26 |
백준 2805번: 나무 자르기 [이분탐색] - Java (0) | 2020.09.25 |