여기에서 우리는 C++에서 문자열의 다음 순열을 사전식으로 생성하는 방법을 볼 것입니다. 사전순으로 다음 순열은 기본적으로 더 큰 순열입니다. 예를 들어 "ACB"의 다음은 "BAC"입니다. 어떤 경우에는 사전순으로 다음 순열이 존재하지 않습니다(예:"BBB" 또는 "DCBA" 등).
C++에서는 next_permutation()이라는 라이브러리 함수를 사용하여 이를 수행할 수 있습니다. 이것은 알고리즘 헤더 파일에 있습니다.
예시
#include <iostream> #include <algorithm> using namespace std; main() { string s = "DBAC"; for(int i = 0; i<5; i++) { bool val = next_permutation(s.begin(), s.end()); if (val == false) { cout << "No next permutation" << endl; break; } else cout << "Next: " << s << endl; } }
출력
Next: DBCA Next: DCAB Next: DCBA No next permutation