빠켱이

백준 15651번 N과 M(3)[C++] 본문

알고리즘/백준 알고리즘

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

빠켱이 2020. 12. 29. 10:21

15651번은 백트레킹을 사용한 기본적인 문제로

앞에서부터 하나씩 모든 경우를 체크하면 됩니다.

#include <iostream>

using namespace std;

int n, m;
int arr[7] = {1,2,3,4,5,6,7};
int result[7] = {0};

void backtracking(int a){
    if(a == m){
        for(int j = 0; j < m; j++){
            printf("%d ", result[j]);
        }
        printf("\n");
    }
    else{
        for(int i = 0; i < n; i++){
            result[a++] = arr[i];
            backtracking(a--);
        }
    }
}

int main(){
    scanf("%d %d",&n, &m);
    backtracking(0);
    return 0;
}
Comments