Language/C#

[C#] 백준 15650번 N과 M (2)

석영 2024. 8. 23. 21:41
반응형

문제

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

  • 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열
  • 고른 수열은 오름차순이어야 한다.

 

 

코드

using System.Text;

StringBuilder sb = new StringBuilder();
int[] result;

string[] input = Console.ReadLine().Split();
int N = int.Parse(input[0]);
int M = int.Parse(input[1]);
result = new int[M];

dfs(N, M, 0, 1);
Console.Write(sb.ToString().TrimEnd());

void dfs(int N, int M, int cnt, int num)
{
    if (cnt == M)
    {
        for (int i = 0; i < M; i++)
        {
            sb.Append(result[i] + " ");
        }
        sb.AppendLine();
        return;
    }
    for (int i = num; i <= N; i++)
    {
        result[cnt] = i;
        dfs(N, M, cnt + 1, i + 1);
    }
}

 

 

실행화면

case: 1
case: 2

 

 

 

 

 


문제링크: https://www.acmicpc.net/problem/15650

 

반응형