ALGORITHM

[JAVA] 알고리즘 : DFS- 부분집합 구하기

연듀 2022. 8. 22. 14:16

 

1부터 N까지의 원소를 갖는 집합의 부분집합을 모두 출력하라.(공집합은 출력하지 않는다.)

 

 

 

 

class Main{
    static int n;
    static int[] ch; // 원소를 사용하는지 체크하는 배열
    public void DFS(int L){
        if(L==n+1){ // 종착점에 왔을 때
            String tmp="";
            for(int i=1; i<=n; i++){
                if(ch[i]==1) tmp+=(i+" ");
            }
            if(tmp.length()>0) System.out.println(tmp);// 공집합이 아닐때만 출력
        }
        else{
            ch[L]=1;
            DFS(L+1);
            ch[L]=0;
            DFS(L+1);

        }
    }

    public static void main(String[] args){
        Main T=new Main();
        n=3;
        ch=new int[n+1]; // 숫자를 인덱스로 하기 위해
        T.DFS(1);
    }
}

 

 

 

 

'ALGORITHM' 카테고리의 다른 글

[JAVA] 백준 2775번- 부녀회장이 될테야  (0) 2022.08.24
[JAVA] 백준 10757번- 큰 수 A+B  (0) 2022.08.22
[JAVA] 백준 9742번- 순열  (0) 2022.08.21
[JAVA] 백준 15651번- N과 M(3)  (0) 2022.08.21
[JAVA] 백준 15650번- N과 M(2)  (0) 2022.08.20