최대 1 분 소요

훔. 자꾸 삽질해서. 정리..

개인 코드.. 대충짜서 그런지 ㅡ.ㅡ; 다시 수정해야 할듯. ^^;

결국 요는… my_per에 있는 for문에서 잘 정리해야 한다는거..

int buff[3];

void my_swap(int * a, int * b)

{

int * tmp = NULL;

tmp = (int*)malloc(sizeof(int));

*tmp = *a;

*a = *b;

*b = *tmp;

free(tmp);

}

void my_per(int start, int size)

{

int i;

if(start == size-1){

printf(“%d, %d, %d \n”, buff[0], buff[1], buff[2]);

return ;

}

for(i = start; i <= size -1; i++)

{

my_swap(&buff[start], &buff[i]);

my_per(start+1, size);

my_swap(&buff[i], &buff[start]);

}

}

int main(int argc, char * argv[])

{

//printf(“%d\n”, checkSquare(8));

buff[0]=1;

buff[1]=2;

buff[2]=3;

my_per(0, 3);

}

코드 지져분해서 다시 정리..

#include

#include

void my_swap(int * a, int * b)

{

int tmp;

tmp = *a;

*a = *b;

*b = tmp;

}

void my_per(int* buff, int l, int r)

{

int i;

if(l == r){

printf(“%d, %d, %d \n”, buff[0], buff[1], buff[2]);

return ;

}

for(i = l; i <= r ; i++)

{

my_swap(&buff[l], &buff[i]);

my_per(buff, l+1, r);

my_swap(&buff[i], &buff[l]);

}

}

int main(int argc, char * argv[])

{

//printf(“%d\n”, checkSquare(8));

int buff[3]={1,2,3};

my_per(buff, 0, 3-1);

}

geeks for geeks에 있는 코드  - 링크

\

태그:

카테고리:

업데이트: