블로그 이미지
shadowchaser
이곳 저곳 이것 저것

calendar

1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28

Notice

2016. 6. 25. 00:47 Algorithm/Backtracking

기본적으로 풀기 어려우면 무조건 부분집합 돌려서 각 값을 대입해서 최대 최소값 구하고 본다. 그러면 중간이라도 간다.

#include <stdio.h>

int data[]={1,2,3,4};
int flag[]={0,0,0,0};

void powerset(int n,int depth)
{
    if(n==depth){
        int i;
        printf("{");
        for(i=0;i<n;i++){
            if(flag[i]==1)printf("%d ",data[i]);
        }
        printf("}\n");
        return;
    }
    flag[depth]=1;
    powerset(n,depth+1);
    flag[depth]=0;
    powerset(n,depth+1);
}

int main()
{
    powerset(sizeof(data)/sizeof(int),0);
    return 0;    
}



'Algorithm > Backtracking' 카테고리의 다른 글

정올 해밀턴 순환 회로  (0) 2016.06.22
정올 영역구하기  (0) 2016.06.13
posted by shadowchaser