🐣 알고리즘 삐약/💻 백준 삐약

89 삐약 : 백준 15656| N과 M (7) [바킹독| 백트래킹 |JAVA]

우주수첩 2024. 8. 14. 16:25
728x90

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

 

package BKD_0x0C_BackTracking;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class BOJ_15656 {
    static int N;
    static int M;
    static int[] arr;

    static int[] input;

    static StringBuilder sb = new StringBuilder();

    static void dfs(int depth){
        if(depth==M){
            for(int val : arr){
                sb.append(val).append(' ');
            }
            sb.append('\n');
            return;
        }
        for(int i=0;i<N;i++){
            arr[depth]=input[i];
            dfs(depth+1);
        }

        return;

    }

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

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        N = Integer.parseInt(st.nextToken());
        M = Integer.parseInt(st.nextToken());

        arr = new int[M];
        input = new int[N];


        st = new StringTokenizer(br.readLine());

        for(int i=0;i<N;i++){
            input[i]=Integer.parseInt(st.nextToken());
        }
        Arrays.sort(input);
        dfs(0);
        System.out.println(sb);

    }
}

728x90