[종만북] N과M - 재귀를 이용한 조합출력 기초

YumeIroVillain·2022년 1월 8일
0

종만북

목록 보기
3/3

매우 기초적인 재귀훈련문제다.
이조차 버벅였다.

/*
종만북 1권 149페이지
*/
#include <bits/stdc++.h>
#define endl '\n'
#define FOR(i,n) for(int i=0;i<(n);++i)
using namespace std;

/*
7C4라면
입력: 7 4
0 1 2 3
0 1 2 4
0 1 2 5
...
3 4 5 6
*/
int N, M;

void Combination(vector<int>&vct) {
    if (vct.size() == M) {
        for (auto a : vct) cout << a << " ";
        cout << endl;
        return;
    }
    int biggest = vct.empty() ? 0 : vct.back() + 1;
    for (int i = biggest; i < N; i++) {
        vct.push_back(i);
        Combination(vct);
        vct.pop_back();
    }
}

int main()
{
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);

    cin >> N >> M;
    vector<int> stk;
    Combination(stk);
    
    return 0;
}

3년 전의 내 코드

profile
HW SW 둘다 공부하는 혼종의 넋두리 블로그 / SKKU SSE 17 / SWM 11th

0개의 댓글