집합 S = {0, 1, ..., n} 이 있을 때, 모든 부분집합 P(S) 를 출력하는 코드

가장 간단히는 비트 플래그를 이용하는 방법이 있다.

단, 집합 원소 크기가 31로 한정되는 단점이 있다 (아래 코드에서는)

아래 코드에서 MAX_VALUE 의 타입을 변경하면 64 개까지 가능하다.

 

 

다른 방법으로는 아래와 같이 재귀 호출을 통해 출력하는 방법이다.

이것은 set[] 에 원소를 추가 또는 추가하지 않는 호출을 반복하는 것이다.

이해가 안 되면 그림을 그려 보시라 ~

references :

: