티스토리 뷰
n개의 서로 다른 오브젝트에서 r개를 추출한다. 이때 추출 순서가 상관이 있으면 순열, 상관이 없으면 조합이라고 한다.
순열의 식은 다음과 같다.

예를 들어, 5개의 공이 있는데 그중에 3개의 공을 뽑아 순서대로 나열하는 경우의 수는
5*4*3*2*1 / 2*1 = 60이다.
C++에서 순열을 표현하는 코드는 next_permutation이다.
해당 함수는 배열(혹은 벡터)에서 순열을 수행할 시작 위치와 끝 위치를 인자로 받은 뒤, 해당 순열을 오름차순 기준으로 다음 순열로 바꾸어 준다.
예를 들어, {1, 2, 3}인 배열이 존재한다고 가정하면, next_permutation을 수행한 후 해당 배열은 {1, 3, 2}로 바뀌게 된다.
해당 함수를 반복 수행하여 순열의 모든 경우의 수를 출력할 수 있다.

반대로 prev_permutation을 사용하여 내림차순 순열을 출력할 수도 있다.
'C++ > 문법' 카테고리의 다른 글
[C++]간단한 문법 정리 (0) | 2023.07.14 |
---|---|
[C++]띄어쓰기 포함 입력받기 (0) | 2023.07.10 |
[C++]C++ 코딩 팁 (0) | 2023.06.08 |