[C++]순열구하는 함수 next_permutation / prev_permutation 알아보기
본문 바로가기

C#

[C++]순열구하는 함수 next_permutation / prev_permutation 알아보기

728x90
반응형

백준 모든 순열구하기를 풀면서 알게된 함수

 

next_permutation함수는

 이미지처럼 순열이 나오게하는 함수입니다.

배열이나 벡터에 오름차순으로 정렬되어있어야합니다.

소스

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

int main() {
int n;
cin >> n;
vector<int> v(n);
for (int i = 0; i < n; i++) {
v[i] = i + 1;
}
do {
for (int i = 0; i < n;i++) {
cout << v[i] << " ";
}
cout << "\n";
} while (next_permutation(v.begin(),v.end()));
return 0;
}

 

 

#include<algorithm> 도 선언되어있어야합니다.

 

prev_permutation는 반대라고 생각하시면됩니다.

이전 순열을 구해준다고 생각하시면됩니다.

배열이 내림차순으로 정렬되어있어야함

#include<iostream>
#include<vector>
#include<algorithm>

using namespace std;

int main() {
/*int n;
cin >> n;*/
vector<int> v(4);
for (int i = 0; i<4; i++) {
v[i] = 4-i;
}
do {
for (int i= 0; i <4; i++) {
cout <<v[i]<< " ";

}
cout << "\n";
} while (prev_permutation(v.begin(), v.end()));
return 0;
}

 

반응형