반응형
정보 출처
https://yabmoons.tistory.com/99
조합
int arr[5];
bool selected[5];
void dfs(int idx, int cnt) {
if(cnt == 3) {
for(int i=0; i<5; i++) {
if(selected[i]) {
cout << arr[i] << ' ';
}
}
cout << endl;
}
else {
for(int i=idx, i<5; i++) {
if(selected[i]) continue;
selectes[i] = true;
dfs(i, cnt+1);
selected[i] = false;
}
}
}
순열
int arr[5];
bool selected[5];
vector<int> v;
void dfs(int cnt) {
if(cnt == 3) { // 3개를 뽑는다면
for(int i=0; i<5; i++) {
cout << v[i] << ' ';
}
cout << endl;
}
else {
for(int i=0, i<5; i++) {
if(selected[i]) continue;
selected[i] = true;
v.push_back(arr[i]);
dfs(cnt+1);
v.pop_back();
selected[i] = false;
}
}
}
중복조합
int arr[5];
int selected[5];
void dfs(int idx, int cnt) {
if(cnt == 3) {
for(int i=0; i<3; i++) {
cout << selected[i] << ' ';
}
cout << endl;
}
else {
for(int i=idx; i<5; i++) {
selected[cnt] = arr[i];
dfs(i, cnt+1);
}
}
}
중복순열
int arr[5];
int selected[5];
void dfs(int cnt) {
if(cnt == 3) {
for(int i=0; i<3; i++) {
cout << selected[i] << ' ';
}
cout << endl;
}
else {
for(int i=0; i<5; i++) {
selected[cnt] = arr[i];
dfs(cnt+1);
}
}
}
반응형
'코딩테스트' 카테고리의 다른 글
[c++] 백준 - 20168_골목 대장 호석 - 기능성 (0) | 2024.08.15 |
---|---|
[c++] 백준 - 17396_백도어 (0) | 2024.08.15 |
[c++] 백준 - 5972번_택배 배송 (0) | 2024.08.15 |
[c++] 프로그래머스 - n진수 게임 (0) | 2024.08.15 |
[c++] 프로그래머스 - 프렌즈4블록 (0) | 2024.08.15 |