부분집합 구하기(DFS)

brightvvater·2023년 4월 9일

풀이>
check배열에 해당 숫자를 사용하면 1을, 사용하지 않으면 0을 넣고 1인 배열 인덱스만 출력하는 방식

public 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);
    }
}
profile
코딩을 잘하고 싶은 입문자

0개의 댓글