✏️ Algorithm/알고리즘 풀이

백준 15651번 - N과 M (3) - C++

미미누 2022. 1. 13. 14:48

 

[문제]

[풀이]

백트래킹 문제이다!

 

[코드]

#include <bits/stdc++.h>

using namespace std;

int n,m;
int arr[10];
int arrcheck[10][10];


void check(int k, int t)
{
    if(k == m)
    {
        for(int i=0; i<m; i++)
        {
            cout << arr[i] << " ";
        }
        cout << "\n";
        
        return;
    }
    
    for(int i=1; i<=n; i++)
    {
        if(!arrcheck[k][i])
        {
            arrcheck[k][i] = 1;
            arr[k] =i;
            check(k+1, i);
            arrcheck[k][i] = 0;
            
        }
    }
}

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >> n >> m;
    check(0,1);
    
}