일하는데 자꾸 포봄 생각에 마음이 걸려서

잠깐 코드를 짜봤음. 최대한 간단하게 짜는데에 초점을 맞춤.

 

vector<string> getPermutations(string str)
{
       vector<string> t,v;

       if( str.length() <= 1 ){
              v.push_back(str);
              return v;

       }

       for( int i = 0; i < str.length(); i++ ){
              swap(str[0],str[i]);
              t = getPermutations(str.substr(1));
              swap(str[i],str[0]);

              for( int j = 0; j < t.size(); j++ )
                     v.push_back(str[i] + t[j]);

       }

       return v;
}
int main()
{

       for( auto s : getPermutations("ABCDEF") )

              cout << s << endl;
       return 0;

}

 

 

포봄의 재귀 방식이 대충 뭔지 알겠고 그거 따라서 만들었음.

뭐 복잡하게 짤 필요 없다니까. 재귀로 짜는 이유가 간단하게 하려고 그러는건데.

너님 코드는 좀 보기가 힘들정도로 복잡했음.