중복조합
-
[C++] 순열(Permutation) 조합(Combination) 알고리즘전공 공부/Algorithm 2020. 1. 28. 17:10
백준에서 완전 탐색 문제를 풀다가항상 조합과 순열을 만들 때 헷갈려서아예 시간을 내어 정리하였다. 이 네 가지 알고리즘의 뼈대를 이해하면, 여러 방면에 쓰여서 좋은 거 같다. 이후 나오는 모든 코드의 n과 r은 다음과 같다. (n개 중에서 r개 선택)#define n 4#define r 3 1) 순열순서를 따지고, 중복을 허용하지 않는다. (순서O, 중복X)중복을 검사하기 위한 check 배열을 사용한다.depth 를 하나씩 늘려가며, 배열에 하나씩 채우는 방법으로 재귀를 수행한다.int pArr[r] = { 0, };bool check[n + 1] = { false, }; void permutation(int depth){ if(depth == r){ printArray(pArr); ..