15652번 - N과 M(4)

Yeonu·2021년 10월 28일
0

알고리즘

목록 보기
5/12
post-thumbnail

📌문제

👉문제보기

코드

#include <iostream>
#define MAX 9

using namespace std;

int arr[MAX];
int n, m;

void dfs(int num, int depth) {
    if (depth == m) {
        for (int i = 0; i < m; i++) {
            cout << arr[i] << " ";
        }
        cout << '\n';
        return;
    }

    for (int i = num; i <= n; i++) {
        arr[depth] = i;
        dfs(i, depth + 1);
    }
}

int main() {
    cin >> n >> m;

    dfs(1, 0);

    return 0;
}

🍳문제 풀이

같은 수를 여러 번 골라도 되는 중복 추출 (=방문 체크 X)과 오름차순이 아닌 비내림차순이 문제의 조건이다.
N과 M(2) 문제를 풀었을 때 오름차순 조건에서 dfs 함수 파라미터로 i+1을 주었다.
비내림차순이므로 같은 수도 가능하니 dfs 파라미터로 i를 전달하면 된다!

profile
이름 짓는게 제일 어려워

0개의 댓글

관련 채용 정보