[BOJ]15654 N과 M (5)

강동현·2024년 1월 9일
0

코딩테스트

목록 보기
68/111
  • sol : 백트래킹 재귀 DFS
  • 입력 배열(input)을 활용해 값 할당
#include <bits/stdc++.h>
using namespace std;
int N, M;
vector<int> in_vec;
vector<int> vec(9);
vector<bool> visited(9);
void DFS(int depth){
    if(depth == M){
        for(int i = 0; i < M; ++i){
            cout << vec[i] << ' ';
        }
        cout << '\n';
        return;
    }
    for(int i = 0; i < N; ++i){
        if(!visited[i]){
            visited[i] = true;
            vec[depth] = in_vec[i];
            DFS(depth+1);
            visited[i] = false;
        }
    }
}
int main(){
    int tmp;
    cin >> N >> M;
    for(int i = 0; i < N; ++i){
        cin >> tmp;
        in_vec.push_back(tmp);
    }
    sort(in_vec.begin(), in_vec.end());
    DFS(0);
    return 0;
}
profile
GAME DESIGN & CLIENT PROGRAMMING

0개의 댓글

관련 채용 정보