알고리즘/기타
[C++] Combination(조합)
키베이루
2022. 12. 26. 11:15
조합은 순서가 없이 몇개를 뽑느냐의 갯수를 샐떄 쓰인다.
nCr : n명중에 r명을 고른다. = nCr = n! / r!(n-r)!
C++에서 이를 재귀 or 반복문으로 표현할 수 있다.
재귀버전
int n = 5, k = 3, arr[5] = { 1,2,3,4,5 };
void print(vector<int> v) {
for (int i : v) {
cout << i << ' ';
}
cout << endl;
}
void combi(int start, vector<int> v) {
if (v.size() == k) {
print(v);
return;
}
for (int i = start + 1; i < n; i++) {
v.push_back(i);
combi(i, v);
v.pop_back();
}
}
int main() {
vector<int> v;
combi(-1, v);
}
반복문 버전
int main() {
for (int i = 0; i < 5; i++) {
for (int j = i+1; j < 5; j++) {
for (int k = j+1; k < 5; k++) {
cout << i << ' ' << j << ' ' << k << endl;
}
}
}
}
출력결과 :