Algorithm/BAEKJOON

[ C / C++ ] 백준 15663 N과 M(9)

곽수진 2022. 5. 14. 10:08
반응형

문제

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

  • N개의 자연수 중에서 M개를 고른 수열

 

#include<algorithm>
#include<iostream>
using namespace std;

bool check[8];
int n, m, num[8], result[8];

void getResult(int count) {

    if (count == m) {
        for (int i = 0; i < m; i++)
            cout << result[i] << ' ';
        cout << '\n';
        return;
    }

    int prev_num = -1;

    for (int i = 0; i < n; i++) {

        if (!check[i] && prev_num != num[i]) {

            check[i] = true;          
            result[count] = num[i];   
            prev_num = num[i];        
            getResult(count + 1);     
            check[i] = false;
        }
    }
}

int main(void) {

    cin >> n >> m;
    for (int i = 0; i < n; i++)
        cin >> num[i];

    sort(num, num + n);

    getResult(0);
    return 0;
}
반응형