리셋 되지 말자

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

알고리즘

[백준] N과M(1)

kyeongjun-dev 2020. 5. 17. 23:35
#include <bits/stdc++.h>
using namespace std;

int n, m;
void dfs(int arr[], bool isused[], int k) {//현재까지 k개를 선택함
    if (k == m) {//k가 0부터 2까지 세 개를 다 고르면 출력
        for (int i = 0; i < m; i++) {
            cout << arr[i] << ' ';
        }
        cout << '\n';
        return;
    }

    for (int i = 0; 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;
}

재귀는 너무 어려운것 같다... 이해하기 전에 복습이 우선인듯..... 자꾸 까먹는다

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

[백준]N과M(2)  (0) 2020.05.18
[백준]N과M(4)  (0) 2020.05.18
[백준]N와 M(1)  (0) 2020.04.25
재귀로 짠 수열(?)  (0) 2020.04.25
[백준 9466] 텀 프로젝트  (0) 2020.03.12
Comments