순열 : 서로다른 n개의 원소를 한 줄로 세우는 경우의 수. -> 순서가 다르면 다른 것으로 생각한다. <--> 조합은 순서가 달라도 원소가 같다면 같으 것으로 생각한다.
next_permutation : 현재 나와 있는 순열에서 범위에 해당하는 다음 순열을 구하고 true를 반환한다. 다음 순열이 없다면(다음 순열이 이전 순열보다 작다면) false를 반환한다.
#include < algorithm>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> v (3);
v[0] = (5);
v[1] = (3);
v[2] = (6);
sort(v.begin(), v.end())
do {
for (auto i : v)
{
cout << i << " ";
}
cout<<endl;
} while (next_permutation(v.begin(), v.end()));
}
출력결과 :
3 5 6
3 6 5
5 3 6
5 6 3
6 3 5
6 5 3
만약 정렬을 하지 않을 경우 (위의 예시에서 sort문이 제외될 경우) 모든 경우를 확인할 수 없다.
출력결과 :
5 3 6
5 6 3
6 3 5
6 5 3