본문 바로가기

언어 기초/C언어

[큰돌 C++ 알고리즘 코딩테스트 | 강의 0주차]순열의 개념과 next_permutation

순서와 상관 있게 뽑는다면 순열이다.

순서와 상관 없게 뽑는다면 조합이다.

순열은 순서가 정해진 임의의 집합을 다른 순서로 섞는 연산을 말한다.

문제에서 순서를 재배치하여…, ~한 순서의 경우 max값을 이라면 순열문제이다.

 

next_permutation() 사용시 주의할 점
next_permutation()과 prev_permutation() 두가지 함수중 보통은 next_permutation()을 쓰는데 그 때 배열을 오름차순으로 정렬해서 사용해야 한다.

 

next_permutation()은 새로운 순열이 이전 순열보다 사전순으로 큰 경우 true를 반환하고 마지막 순열에 도달하고 범위가 첫 번째 순열로 재설정된 경우 false를 반환하는 함수이다.

이를 do - while문으로 모든 순열에 해당하는 배열을 나타낼 수 있다.

재귀함수로 만드는 순열