No Rules Rules

N과 M (8) (feat. 백준, 15657번) 본문

생활/코테

N과 M (8) (feat. 백준, 15657번)

개발하는 완두콩 2023. 2. 14. 11:16
728x90
반응형

N과 M (8)
https://www.acmicpc.net/problem/15657

 

15657번: N과 M (8)

N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열

www.acmicpc.net

 

// woohyeon.kim
// kim519620.tistory.com
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int N, M, arr[8], tmp[8];
vector<vector<int>> ans;
void dfs(register int idx, register int m){
    if(m == M){
        vector<int> t;
        for(register int i = 0; i < M; ++i)
            t.push_back(tmp[i]);
        ans.push_back(t);
        return;
    }
    for(register int i = idx; i < N; ++i){
        tmp[m] = arr[i];
        dfs(i, m + 1);
     }
}
int main(){
    ios::sync_with_stdio(false), cin.tie(NULL);
    cin >> N >> M;
    for(register int n = 0; n < N; ++n)
        cin >> arr[n];
    sort(arr, arr + N);
    dfs(0, 0);
    for(auto& v1 : ans){
        for(auto& v2 : v1)
            cout << v2 << " ";
        cout << "\n";
    }
    return 0;
}
// *&)*@*

 

반응형

문제의 조건에 따른 순열을 구하는 문제입니다.

728x90
반응형
Comments