+) 부분집합 (DFS 완전탐색)

sonyrainy·2022년 7월 31일
0

🚗문제 설명

자연수 N이 주어지면 1부터 N까지의 원소를 갖는 집합의 부분집합을 모두 출력하는 프로그램
을 작성하세요.

🚕입출력 설명

첫 번째 줄에 자연수 N(1<=N<=10)이 주어집니다.

첫 번째 줄부터 각각의 부분집합을 출력합니다. 부분집합을 출력하는 순서는 출력예제에서 출
력한 순서와 같게 합니다. 단 공집합은 출력하지 않습니다.

🚕입출력 예시

🚐코드

#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;
int n, ch[11];
void DFS(int L){
    int i;
    
    if(L==n+1){
        for(i=1;i<=n;i++){
            if(ch[i]==1) printf("%d ", i);
        }
        puts("");
    } else {
    	
        //왼쪽은 참여한다.
        ch[L]=1;
        DFS(L+1);
        ch[L]=0;
        DFS(L+1);
    }
}


int main(){
    
    scanf("%d", &n);
    
    DFS(1);
    return 0;
}

(참고 : IT 취업을 위한 알고리즘 문제풀이 (with C/C++))

profile
@sonyrainy

0개의 댓글

관련 채용 정보