리셋 되지 말자

[백준]N과M(2) 본문

알고리즘

[백준]N과M(2)

kyeongjun-dev 2020. 5. 18. 00:49
#include <bits/stdc++.h>
using namespace std;

int n, m;
void dfs(int arr[], bool isused[], int k) {//현재까지 k개를 선택함
    if (k == m) {
        for (int i = 0; i < m; i++) {
            cout << arr[i] + 1 << ' ';
        }
        cout << '\n';
        return;
    }

    int i = 0;
    if (k > 0)
        i = arr[k - 1];

    for (; i < n; i++) {
        if (isused[i] == false) {
            arr[k] = i;
            isused[i] = true;
            dfs(arr, isused, k + 1);
            isused[i] = false;
        }
    }
}


int main() {

    cin >> n >> m;
    int *arr = new int[m]();
    bool *isused = new bool[n]();
    int k=0;
    dfs(arr, isused, k);

    return 0;
}

뭔가 너무 때려 맞추는 듯한 느낌이 너무 강하다...

'알고리즘' 카테고리의 다른 글

[C++] sort 내림차순  (0) 2020.05.21
[백준]N과M(3)  (0) 2020.05.18
[백준]N과M(4)  (0) 2020.05.18
[백준] N과M(1)  (0) 2020.05.17
[백준]N와 M(1)  (0) 2020.04.25
Comments