[BOJ]15652 N과 M (4) - 중복 조합

강동현·2024년 1월 9일
0

코딩테스트

목록 보기
67/111
  • sol : 백트래킹 재귀 DFS
  • 중복조합 : nHmnHm의 코드식 구현
    • nHr=n+r1CrnHr = n+r-1Cr
    • 중복 허용
      • visited 배열 필요 X
    • 대소 제한 있음
      • 추가 인자 필요 O
#include <bits/stdc++.h>
using namespace std;
int N, M;
vector<int> vec(9, 0);
//중복 선택 허용 : 방문 배열 필요 X // vector<bool> visisted(9, false); 
//대소 제한 없음
void DFS(int depth){
    if(depth == M){
        for(int i = 0; i < M; ++i){
            cout << vec[i] << ' ';
        }
        cout << '\n';
        return;
    }
    for(int i = 1; i <= N; ++i){
        vec[depth] = i;
        DFS(depth+1);
    }
}
int main(){
    cin >> N >> M;
    DFS(0);
    return 0;
}
profile
GAME DESIGN & CLIENT PROGRAMMING

0개의 댓글

관련 채용 정보