next_permutation의 기본 동작 방식
Example
for(int i = 1; i <7; i++)
num.push_back(i);
do{
for(int i = 0; i < num.size();i++){
cout << num[i] << " ";
}
cout << endl;
}while(next_permutation(num.begin(),num.end()));
1 2 3 4 5 6 1 2 3 4 6 5 1 2 3 5 4 6 1 2 3 5 6 4 1 2 3 6 4 5 1 2 3 6 5 4 1 2 4 3 5 6 1 2 4 3 6 5 1 2 4 5 3 6 1 2 4 5 6 3 1 2 4 6 3 5 1 2 4 6 5 3 1 2 5 3 4 6 1 2 5 3 6 4 1 2 5 4 3 6 1 2 5 4 6 3 1 2 5 6 3 4 1 2 5 6 4 3 1 2 6 3 4 5 1 2 6 3 5 4 1 2 6 4 3 5 1 2 6 4 5 3 1 2 6 5 3 4 1 2 6 5 4 3 1 3 2 4 5 6 1 3 2 4 6 5 1 3 2 5 4 6 1 3 2 5 6 4 1 3 2 6 4 5 1 3 2 6 5 4 1 3 4 2 5 6 1 3 4 2 6 5 1 3 4 5 2 6 1 3 4 5 6 2 1 3 4 6 2 5 1 3 4 6 5 2 1 3 5 2 4 6 1 3 5 2 6 4 1 3 5 4 2 6 1 3 5 4 6 2 1 3 5 6 2 4 1 3 5 6 4 2 1 3 6 2 4 5 1 3 6 2 5 4 1 3 6 4 2 5 1 3 6 4 5 2 1 3 6 5 2 4 1 3 6 5 4 2 1 4 2 3 5 6 1 4 2 3 6 5 1 4 2 5 3 6 1 4 2 5 6 3 1 4 2 6 3 5 1 4 2 6 5 3 1 4 3 2 5 6 1 4 3 2 6 5 1 4 3 5 2 6 1 4 3 5 6 2 1 4 3 6 2 5 1 4 3 6 5 2 1 4 5 2 3 6 1 4 5 2 6 3 1 4 5 3 2 6 1 4 5 3 6 2 1 4 5 6 2 3 1 4 5 6 3 2 1 4 6 2 3 5 1 4 6 2 5 3 1 4 6 3 2 5 1 4 6 3 5 2 1 4 6 5 2 3 1 4 6 5 3 2 1 5 2 3 4 6 1 5 2 3 6 4 1 5 2 4 3 6 1 5 2 4 6 3 1 5 2 6 3 4 1 5 2 6 4 3 1 5 3 2 4 6 1 5 3 2 6 4 1 5 3 4 2 6 1 5 3 4 6 2 1 5 3 6 2 4 1 5 3 6 4 2 1 5 4 2 3 6 1 5 4 2 6 3 1 5 4 3 2 6 1 5 4 3 6 2 1 5 4 6 2 3 1 5 4 6 3 2 1 5 6 2 3 4 1 5 6 2 4 3 1 5 6 3 2 4 1 5 6 3 4 2 1 5 6 4 2 3 1 5 6 4 3 2 1 6 2 3 4 5 1 6 2 3 5 4 1 6 2 4 3 5 1 6 2 4 5 3 1 6 2 5 3 4 1 6 2 5 4 3 1 6 3 2 4 5 1 6 3 2 5 4 1 6 3 4 2 5 1 6 3 4 5 2 1 6 3 5 2 4 1 6 3 5 4 2 1 6 4 2 3 5 1 6 4 2 5 3 1 6 4 3 2 5 1 6 4 3 5 2 1 6 4 5 2 3 1 6 4 5 3 2 1 6 5 2 3 4 1 6 5 2 4 3 1 6 5 3 2 4 1 6 5 3 4 2 1 6 5 4 2 3 1 6 5 4 3 2 |
2 1 3 4 5 6 2 1 3 4 6 5 2 1 3 5 4 6 2 1 3 5 6 4 2 1 3 6 4 5 2 1 3 6 5 4 2 1 4 3 5 6 2 1 4 3 6 5 2 1 4 5 3 6 2 1 4 5 6 3 2 1 4 6 3 5 2 1 4 6 5 3 2 1 5 3 4 6 2 1 5 3 6 4 2 1 5 4 3 6 2 1 5 4 6 3 2 1 5 6 3 4 2 1 5 6 4 3 2 1 6 3 4 5 2 1 6 3 5 4 2 1 6 4 3 5 2 1 6 4 5 3 2 1 6 5 3 4 2 1 6 5 4 3 2 3 1 4 5 6 2 3 1 4 6 5 2 3 1 5 4 6 2 3 1 5 6 4 2 3 1 6 4 5 2 3 1 6 5 4 2 3 4 1 5 6 2 3 4 1 6 5 2 3 4 5 1 6 2 3 4 5 6 1 2 3 4 6 1 5 2 3 4 6 5 1 2 3 5 1 4 6 2 3 5 1 6 4 2 3 5 4 1 6 2 3 5 4 6 1 2 3 5 6 1 4 2 3 5 6 4 1 2 3 6 1 4 5 2 3 6 1 5 4 2 3 6 4 1 5 2 3 6 4 5 1 2 3 6 5 1 4 2 3 6 5 4 1 2 4 1 3 5 6 2 4 1 3 6 5 2 4 1 5 3 6 2 4 1 5 6 3 2 4 1 6 3 5 2 4 1 6 5 3 2 4 3 1 5 6 2 4 3 1 6 5 2 4 3 5 1 6 2 4 3 5 6 1 2 4 3 6 1 5 2 4 3 6 5 1 2 4 5 1 3 6 2 4 5 1 6 3 2 4 5 3 1 6 2 4 5 3 6 1 2 4 5 6 1 3 2 4 5 6 3 1 2 4 6 1 3 5 2 4 6 1 5 3 2 4 6 3 1 5 2 4 6 3 5 1 2 4 6 5 1 3 2 4 6 5 3 1 2 5 1 3 4 6 2 5 1 3 6 4 2 5 1 4 3 6 2 5 1 4 6 3 2 5 1 6 3 4 2 5 1 6 4 3 2 5 3 1 4 6 2 5 3 1 6 4 2 5 3 4 1 6 2 5 3 4 6 1 2 5 3 6 1 4 2 5 3 6 4 1 2 5 4 1 3 6 2 5 4 1 6 3 2 5 4 3 1 6 2 5 4 3 6 1 2 5 4 6 1 3 2 5 4 6 3 1 2 5 6 1 3 4 2 5 6 1 4 3 2 5 6 3 1 4 2 5 6 3 4 1 2 5 6 4 1 3 2 5 6 4 3 1 2 6 1 3 4 5 2 6 1 3 5 4 2 6 1 4 3 5 2 6 1 4 5 3 2 6 1 5 3 4 2 6 1 5 4 3 2 6 3 1 4 5 2 6 3 1 5 4 2 6 3 4 1 5 2 6 3 4 5 1 2 6 3 5 1 4 2 6 3 5 4 1 2 6 4 1 3 5 2 6 4 1 5 3 2 6 4 3 1 5 2 6 4 3 5 1 2 6 4 5 1 3 2 6 4 5 3 1 2 6 5 1 3 4 2 6 5 1 4 3 2 6 5 3 1 4 2 6 5 3 4 1 2 6 5 4 1 3 2 6 5 4 3 1 |
3 1 2 4 5 6 3 1 2 4 6 5 3 1 2 5 4 6 3 1 2 5 6 4 3 1 2 6 4 5 3 1 2 6 5 4 3 1 4 2 5 6 3 1 4 2 6 5 3 1 4 5 2 6 3 1 4 5 6 2 3 1 4 6 2 5 3 1 4 6 5 2 3 1 5 2 4 6 3 1 5 2 6 4 3 1 5 4 2 6 3 1 5 4 6 2 3 1 5 6 2 4 3 1 5 6 4 2 3 1 6 2 4 5 3 1 6 2 5 4 3 1 6 4 2 5 3 1 6 4 5 2 3 1 6 5 2 4 3 1 6 5 4 2 3 2 1 4 5 6 3 2 1 4 6 5 3 2 1 5 4 6 3 2 1 5 6 4 3 2 1 6 4 5 3 2 1 6 5 4 3 2 4 1 5 6 3 2 4 1 6 5 3 2 4 5 1 6 3 2 4 5 6 1 3 2 4 6 1 5 3 2 4 6 5 1 3 2 5 1 4 6 3 2 5 1 6 4 3 2 5 4 1 6 3 2 5 4 6 1 3 2 5 6 1 4 3 2 5 6 4 1 3 2 6 1 4 5 3 2 6 1 5 4 3 2 6 4 1 5 3 2 6 4 5 1 3 2 6 5 1 4 3 2 6 5 4 1 3 4 1 2 5 6 3 4 1 2 6 5 3 4 1 5 2 6 3 4 1 5 6 2 3 4 1 6 2 5 3 4 1 6 5 2 3 4 2 1 5 6 3 4 2 1 6 5 3 4 2 5 1 6 3 4 2 5 6 1 3 4 2 6 1 5 3 4 2 6 5 1 3 4 5 1 2 6 3 4 5 1 6 2 3 4 5 2 1 6 3 4 5 2 6 1 3 4 5 6 1 2 3 4 5 6 2 1 3 4 6 1 2 5 3 4 6 1 5 2 3 4 6 2 1 5 3 4 6 2 5 1 3 4 6 5 1 2 3 4 6 5 2 1 3 5 1 2 4 6 3 5 1 2 6 4 3 5 1 4 2 6 3 5 1 4 6 2 3 5 1 6 2 4 3 5 1 6 4 2 3 5 2 1 4 6 3 5 2 1 6 4 3 5 2 4 1 6 3 5 2 4 6 1 3 5 2 6 1 4 3 5 2 6 4 1 3 5 4 1 2 6 3 5 4 1 6 2 3 5 4 2 1 6 3 5 4 2 6 1 3 5 4 6 1 2 3 5 4 6 2 1 3 5 6 1 2 4 3 5 6 1 4 2 3 5 6 2 1 4 3 5 6 2 4 1 3 5 6 4 1 2 3 5 6 4 2 1 3 6 1 2 4 5 3 6 1 2 5 4 3 6 1 4 2 5 3 6 1 4 5 2 3 6 1 5 2 4 3 6 1 5 4 2 3 6 2 1 4 5 3 6 2 1 5 4 3 6 2 4 1 5 3 6 2 4 5 1 3 6 2 5 1 4 3 6 2 5 4 1 3 6 4 1 2 5 3 6 4 1 5 2 3 6 4 2 1 5 3 6 4 2 5 1 3 6 4 5 1 2 3 6 4 5 2 1 3 6 5 1 2 4 3 6 5 1 4 2 3 6 5 2 1 4 3 6 5 2 4 1 3 6 5 4 1 2 3 6 5 4 2 1 |
4 1 2 3 5 6 4 1 2 3 6 5 4 1 2 5 3 6 4 1 2 5 6 3 4 1 2 6 3 5 4 1 2 6 5 3 4 1 3 2 5 6 4 1 3 2 6 5 4 1 3 5 2 6 4 1 3 5 6 2 4 1 3 6 2 5 4 1 3 6 5 2 4 1 5 2 3 6 4 1 5 2 6 3 4 1 5 3 2 6 4 1 5 3 6 2 4 1 5 6 2 3 4 1 5 6 3 2 4 1 6 2 3 5 4 1 6 2 5 3 4 1 6 3 2 5 4 1 6 3 5 2 4 1 6 5 2 3 4 1 6 5 3 2 4 2 1 3 5 6 4 2 1 3 6 5 4 2 1 5 3 6 4 2 1 5 6 3 4 2 1 6 3 5 4 2 1 6 5 3 4 2 3 1 5 6 4 2 3 1 6 5 4 2 3 5 1 6 4 2 3 5 6 1 4 2 3 6 1 5 4 2 3 6 5 1 4 2 5 1 3 6 4 2 5 1 6 3 4 2 5 3 1 6 4 2 5 3 6 1 4 2 5 6 1 3 4 2 5 6 3 1 4 2 6 1 3 5 4 2 6 1 5 3 4 2 6 3 1 5 4 2 6 3 5 1 4 2 6 5 1 3 4 2 6 5 3 1 4 3 1 2 5 6 4 3 1 2 6 5 4 3 1 5 2 6 4 3 1 5 6 2 4 3 1 6 2 5 4 3 1 6 5 2 4 3 2 1 5 6 4 3 2 1 6 5 4 3 2 5 1 6 4 3 2 5 6 1 4 3 2 6 1 5 4 3 2 6 5 1 4 3 5 1 2 6 4 3 5 1 6 2 4 3 5 2 1 6 4 3 5 2 6 1 4 3 5 6 1 2 4 3 5 6 2 1 4 3 6 1 2 5 4 3 6 1 5 2 4 3 6 2 1 5 4 3 6 2 5 1 4 3 6 5 1 2 4 3 6 5 2 1 4 5 1 2 3 6 4 5 1 2 6 3 4 5 1 3 2 6 4 5 1 3 6 2 4 5 1 6 2 3 4 5 1 6 3 2 4 5 2 1 3 6 4 5 2 1 6 3 4 5 2 3 1 6 4 5 2 3 6 1 4 5 2 6 1 3 4 5 2 6 3 1 4 5 3 1 2 6 4 5 3 1 6 2 4 5 3 2 1 6 4 5 3 2 6 1 4 5 3 6 1 2 4 5 3 6 2 1 4 5 6 1 2 3 4 5 6 1 3 2 4 5 6 2 1 3 4 5 6 2 3 1 4 5 6 3 1 2 4 5 6 3 2 1 4 6 1 2 3 5 4 6 1 2 5 3 4 6 1 3 2 5 4 6 1 3 5 2 4 6 1 5 2 3 4 6 1 5 3 2 4 6 2 1 3 5 4 6 2 1 5 3 4 6 2 3 1 5 4 6 2 3 5 1 4 6 2 5 1 3 4 6 2 5 3 1 4 6 3 1 2 5 4 6 3 1 5 2 4 6 3 2 1 5 4 6 3 2 5 1 4 6 3 5 1 2 4 6 3 5 2 1 4 6 5 1 2 3 4 6 5 1 3 2 4 6 5 2 1 3 4 6 5 2 3 1 4 6 5 3 1 2 4 6 5 3 2 1 |
5 1 2 3 4 6 5 1 2 3 6 4 5 1 2 4 3 6 5 1 2 4 6 3 5 1 2 6 3 4 5 1 2 6 4 3 5 1 3 2 4 6 5 1 3 2 6 4 5 1 3 4 2 6 5 1 3 4 6 2 5 1 3 6 2 4 5 1 3 6 4 2 5 1 4 2 3 6 5 1 4 2 6 3 5 1 4 3 2 6 5 1 4 3 6 2 5 1 4 6 2 3 5 1 4 6 3 2 5 1 6 2 3 4 5 1 6 2 4 3 5 1 6 3 2 4 5 1 6 3 4 2 5 1 6 4 2 3 5 1 6 4 3 2 5 2 1 3 4 6 5 2 1 3 6 4 5 2 1 4 3 6 5 2 1 4 6 3 5 2 1 6 3 4 5 2 1 6 4 3 5 2 3 1 4 6 5 2 3 1 6 4 5 2 3 4 1 6 5 2 3 4 6 1 5 2 3 6 1 4 5 2 3 6 4 1 5 2 4 1 3 6 5 2 4 1 6 3 5 2 4 3 1 6 5 2 4 3 6 1 5 2 4 6 1 3 5 2 4 6 3 1 5 2 6 1 3 4 5 2 6 1 4 3 5 2 6 3 1 4 5 2 6 3 4 1 5 2 6 4 1 3 5 2 6 4 3 1 5 3 1 2 4 6 5 3 1 2 6 4 5 3 1 4 2 6 5 3 1 4 6 2 5 3 1 6 2 4 5 3 1 6 4 2 5 3 2 1 4 6 5 3 2 1 6 4 5 3 2 4 1 6 5 3 2 4 6 1 5 3 2 6 1 4 5 3 2 6 4 1 5 3 4 1 2 6 5 3 4 1 6 2 5 3 4 2 1 6 5 3 4 2 6 1 5 3 4 6 1 2 5 3 4 6 2 1 5 3 6 1 2 4 5 3 6 1 4 2 5 3 6 2 1 4 5 3 6 2 4 1 5 3 6 4 1 2 5 3 6 4 2 1 5 4 1 2 3 6 5 4 1 2 6 3 5 4 1 3 2 6 5 4 1 3 6 2 5 4 1 6 2 3 5 4 1 6 3 2 5 4 2 1 3 6 5 4 2 1 6 3 5 4 2 3 1 6 5 4 2 3 6 1 5 4 2 6 1 3 5 4 2 6 3 1 5 4 3 1 2 6 5 4 3 1 6 2 5 4 3 2 1 6 5 4 3 2 6 1 5 4 3 6 1 2 5 4 3 6 2 1 5 4 6 1 2 3 5 4 6 1 3 2 5 4 6 2 1 3 5 4 6 2 3 1 5 4 6 3 1 2 5 4 6 3 2 1 5 6 1 2 3 4 5 6 1 2 4 3 5 6 1 3 2 4 5 6 1 3 4 2 5 6 1 4 2 3 5 6 1 4 3 2 5 6 2 1 3 4 5 6 2 1 4 3 5 6 2 3 1 4 5 6 2 3 4 1 5 6 2 4 1 3 5 6 2 4 3 1 5 6 3 1 2 4 5 6 3 1 4 2 5 6 3 2 1 4 5 6 3 2 4 1 5 6 3 4 1 2 5 6 3 4 2 1 5 6 4 1 2 3 5 6 4 1 3 2 5 6 4 2 1 3 5 6 4 2 3 1 5 6 4 3 1 2 5 6 4 3 2 1 |
6 1 2 3 4 5 6 1 2 3 5 4 6 1 2 4 3 5 6 1 2 4 5 3 6 1 2 5 3 4 6 1 2 5 4 3 6 1 3 2 4 5 6 1 3 2 5 4 6 1 3 4 2 5 6 1 3 4 5 2 6 1 3 5 2 4 6 1 3 5 4 2 6 1 4 2 3 5 6 1 4 2 5 3 6 1 4 3 2 5 6 1 4 3 5 2 6 1 4 5 2 3 6 1 4 5 3 2 6 1 5 2 3 4 6 1 5 2 4 3 6 1 5 3 2 4 6 1 5 3 4 2 6 1 5 4 2 3 6 1 5 4 3 2 6 2 1 3 4 5 6 2 1 3 5 4 6 2 1 4 3 5 6 2 1 4 5 3 6 2 1 5 3 4 6 2 1 5 4 3 6 2 3 1 4 5 6 2 3 1 5 4 6 2 3 4 1 5 6 2 3 4 5 1 6 2 3 5 1 4 6 2 3 5 4 1 6 2 4 1 3 5 6 2 4 1 5 3 6 2 4 3 1 5 6 2 4 3 5 1 6 2 4 5 1 3 6 2 4 5 3 1 6 2 5 1 3 4 6 2 5 1 4 3 6 2 5 3 1 4 6 2 5 3 4 1 6 2 5 4 1 3 6 2 5 4 3 1 6 3 1 2 4 5 6 3 1 2 5 4 6 3 1 4 2 5 6 3 1 4 5 2 6 3 1 5 2 4 6 3 1 5 4 2 6 3 2 1 4 5 6 3 2 1 5 4 6 3 2 4 1 5 6 3 2 4 5 1 6 3 2 5 1 4 6 3 2 5 4 1 6 3 4 1 2 5 6 3 4 1 5 2 6 3 4 2 1 5 6 3 4 2 5 1 6 3 4 5 1 2 6 3 4 5 2 1 6 3 5 1 2 4 6 3 5 1 4 2 6 3 5 2 1 4 6 3 5 2 4 1 6 3 5 4 1 2 6 3 5 4 2 1 6 4 1 2 3 5 6 4 1 2 5 3 6 4 1 3 2 5 6 4 1 3 5 2 6 4 1 5 2 3 6 4 1 5 3 2 6 4 2 1 3 5 6 4 2 1 5 3 6 4 2 3 1 5 6 4 2 3 5 1 6 4 2 5 1 3 6 4 2 5 3 1 6 4 3 1 2 5 6 4 3 1 5 2 6 4 3 2 1 5 6 4 3 2 5 1 6 4 3 5 1 2 6 4 3 5 2 1 6 4 5 1 2 3 6 4 5 1 3 2 6 4 5 2 1 3 6 4 5 2 3 1 6 4 5 3 1 2 6 4 5 3 2 1 6 5 1 2 3 4 6 5 1 2 4 3 6 5 1 3 2 4 6 5 1 3 4 2 6 5 1 4 2 3 6 5 1 4 3 2 6 5 2 1 3 4 6 5 2 1 4 3 6 5 2 3 1 4 6 5 2 3 4 1 6 5 2 4 1 3 6 5 2 4 3 1 6 5 3 1 2 4 6 5 3 1 4 2 6 5 3 2 1 4 6 5 3 2 4 1 6 5 3 4 1 2 6 5 3 4 2 1 6 5 4 1 2 3 6 5 4 1 3 2 6 5 4 2 1 3 6 5 4 2 3 1 6 5 4 3 1 2 6 5 4 3 2 1 |
prev_permutation의 기본 동작 방식
Example
for(int i = 4; i >= 1; i--)
num.push_back(i);
do{
for(int i = 0; i < num.size();i++){
cout << num[i] << " ";
}
cout << endl;
}while(prev_permutation(num.begin(),num.end()));
4 3 2 1 4 3 1 2 4 2 3 1 4 2 1 3 4 1 3 2 4 1 2 3
|
3 4 2 1 3 4 1 2 3 2 4 1 3 2 1 4 3 1 4 2 3 1 2 4
|
2 4 3 1 2 4 1 3 2 3 4 1 2 3 1 4 2 1 4 3 2 1 3 4
|
1 4 3 2 1 4 2 3 1 3 4 2 1 3 2 4 1 2 4 3 1 2 3 4 |