N과 M (2) 15650

LJM·2023년 1월 18일
0

백준풀기

목록 보기
42/259

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

같은 숫자 사용 X
중복 조합 사용 X

import java.io.*;

public class Main {

    static int N;
    static int M;

    static int[] arr;
    static boolean[] checked;

    static StringBuilder sb = new StringBuilder();

    public static void main(String[] args)throws IOException
    {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String[] input;
        input = br.readLine().split(" ");

        N = Integer.parseInt(input[0]);
        M = Integer.parseInt(input[1]);

        arr = new int[M];
        checked = new boolean[N];

        search(0);

        System.out.println(sb);
    }

    static void search(int depth)
    {
        if(depth == M)
        {
            for(int i = 0; i < arr.length; ++i)
            {
                if(i != arr.length-1)
                    sb.append((arr[i]+1) + " ");
                else
                    sb.append((arr[i]+1) + "\n");
            }
            return;
        }

        for(int i = arr[depth==0?depth:depth-1]; i < N; ++i)
        {
            if(checked[i] == false)
            {
                checked[i] = true;
                arr[depth] = i;
                search(depth+1);
                checked[i] = false;
            }
        }
    }
}
profile
게임개발자 백엔드개발자

0개의 댓글