티스토리 뷰

Problem Solving/백준 온라인 저지

15655-N과 M (6)

developer0hye 2020. 10. 26. 21:11

www.acmicpc.net/problem/15655

 

15655번: N과 M (6)

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

www.acmicpc.net

N개의 자연수와 자연수 M이 주어졌을 때, 길이가 M인 조합을 구하는 문제입니다. 여기서, N개의 자연수는 모두 다른 수입니다.

 

이전 N과 M (1, ..., 4) 문제는 N개의 자연수가 {1, ..., N}로 주어졌다면, 해당 문제는 임의의 자연수를 입력받고 그에 대한 조합을 구해야합니다. 이점을 유의하여 문제를 풀면 됩니다.

코드

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

int N;
int M;
int Ns[8];

int numbers[9];

void combination(int i, int len)
{
    if(len == M + 1)
    {
        for(int i = 1; i <= len - 1; i++)
        {
            cout << numbers[i] << " ";
        }
        cout << '\n';
        return;
    }

    for(; i < N; i++)
    {
        numbers[len] = Ns[i];
        combination(i + 1, len + 1);
    }
}

int main()
{
    cin >> N >> M;
    for(int i = 0; i < N; i++)
        cin >> Ns[i];
    sort(Ns, Ns + N);
    combination(0, 1);
    return 0;
}

'Problem Solving > 백준 온라인 저지' 카테고리의 다른 글

15657-N과 M (8)  (0) 2020.10.26
15656-N과 M (7)  (0) 2020.10.26
15654-N과 M (5)  (0) 2020.10.26
15652-N과 M (4)  (0) 2020.10.26
15651-N과 M (3)  (0) 2020.10.26
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함