본문 바로가기
알고리즘

백준 s3 15654 N과 M (5) c++

by kyj0032 2024. 1. 15.

https://www.acmicpc.net/problem/15654

 

15654번: N과 M (5)

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

www.acmicpc.net

 

/*boj s3 15654 N과 M (5)*/
#include <algorithm>
#include <iostream>
#define MAXN 10
using namespace std;

int N, M;
int arr[MAXN];
int answer[MAXN];

bool isused[MAXN];
void func(int k) { // [k]에 넣을 차례,
    if (k == M) {
        for (int i = 0; i < M; i++) {
            cout << answer[i] << " ";
        }
        cout << "\n";
        return;
    }

    for (int i = 0; i < N; i++) {
        if (isused[i]) continue;

        isused[i] = true;
        answer[k] = arr[i];
        func(k + 1);
        isused[i] = false;
    }
}

int main(void) {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >> N >> M;

    for (int i = 0; i < N; i++)
        cin >> arr[i];

    sort(arr, arr + N);

    func(0);
}

'알고리즘' 카테고리의 다른 글

백준 15665 N과 M (11) c++  (0) 2024.01.15
백준 s2 15663 N과 M (9), s2 15664 N과 M(10) c++  (0) 2024.01.15
백준 s3 15652 N과 M (4) c++  (0) 2024.01.15
백준 s3 15651 N과 M (3) c++  (0) 2024.01.15
백준 s3 15650 N과 M (2) c++  (0) 2024.01.15