입력 : 예) abc
출력 : abc, acb, bac, bca, cab, cba
(3! =6개의 결과가 출력)
출력 : abc, acb, bac, bca, cab, cba
(3! =6개의 결과가 출력)
recursive로 구현하면 졸라 편한데
이걸 interative로 구현하래 도대체 어떻게 알고리즘을 짜야되나여
포문 졸라 돌려볼라고 해도 도더ㅐ체 어떻게 돌려야할지 감도 안잡힘
일단 만들어본건
void perm(char *list) { //abcde
int a,b,c,d,e;
for(a=0; a<strlen(list); a++){
for(b=0; b<strlen(list)&&b!=a; b++){
for(c=0; c<strlen(list)&&c!=a&&c!=b; c++){
for(d=0; d<strlen(list)&&d!=a&&d!=b&&d!=c; d++){
for(e=0; e<strlen(list)&&e!=a&&e!=b&&e!=c&&e!=d; e++)
printf("%c%c%c%c%c ", list[a],list[b],list[c],list[d],list[e]);}}}}
}
근데 안됨..
검색하면 다 나온다.
검색해도 리커시브뿐..
으아..
binary search도 interative로 구현하라네..
시스템 스택 대신에 stl stack 쓰면 될 것 같은데
recursion 함수에 넣을 파라메터를 stack에 넣는다고 생각해보세요.
ㄴ 조은 아이디언데... 생각해 보면 리커젼은 인간의 생각을 거의 그대로 쓰는 거고 스택은 어떤 머시너리를 사용하는 기계적인 거지. 형은 당연히 인간방식 선호