728x90
- C++의 <algorithm> 헤더에는 순열(permutation)을 구할 수 있는 next_permutation 함수가 있다.
완전 탐색 시의 코드를 상당히 간결하게 만들어준다.
- 코드 문제 풀이 시 입력받는 arr가 있다고 할 때, 해당 arr의 순열을 찾을 index의 배열을 별도로 선언한다.
- next_permutation(시작 주소, 끝 주소) 형태로 반환받으므로, next_permutation(배열 이름, 배열 이름 + 원소 개수) 형태로 while 반복문을 사용해주면, 다음 순열이 없을 때까지(false를 반환하다) 순열을 조합해준다.
int per[10] = {0,1,2,3,4,5,6,7,8,9};
do{
//per에는
//0,1,2,3,4,5,6,7,8,9 부터,
//9,8,7,6,5,4,3,2,1,0 까지 모든 순열이 반환된다.
}while(next_permutation(per, per + 10));
728x90