백준 15651 N과 M (3) / C++

이유참치·2025년 12월 15일

백준

목록 보기
167/249

문제 : 15651

풀이 point

백트래킹을 통해 구현한다. 이미 선택된 숫자 또한 선택해야하기 때문에(ex 1 1)
visit배열은 필요하지 않다.

풀이 방법

백트래킹을 구현한다. 길이M에 도달하면 출력하고 길이 M에 도달하기 까지 숫자들을 선택해나간다.

코드

//백준 15651, N과 M(3)

#include <iostream>

int N, M;
int ans[8];

void back(int depth){
    if(depth == M){
        for(int i{0}; i<M; ++i) std::cout << ans[i] << ' ';
        std::cout << '\n';
        return;
    }
    for(int i{1}; i<=N; ++i){
        ans[depth] = i;
        back(depth+1);
    }
}
int main (){

    std::cin >> N >> M;
    back(0);

    return 0;
}
profile
임아리 - 대학생

0개의 댓글