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 |
'C|C++ 라이브러리' 카테고리의 다른 글
[string] size() 와 length() 비교 (0) | 2023.07.05 |
---|---|
strcpy, strcmp를 이용해 char형 배열 복사 및 비교하기 (0) | 2020.08.31 |
next_permutation/prev_permutation을 이용해 조합(Combination) 구하기 (0) | 2020.08.27 |