Programming/Algorithm

[Algorithm] C++ 부분집합(DFS)

100winone 2020. 1. 6. 14:08

입력예제 1

 

출력예제 1

1 2 3

1 2

1 3

1

2 3

2

3

 

#define _CRT_SECURE_NO_WARNINGS
#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;
}