관리 메뉴

hyeals study

[백준 15652번] [백트래킹] [JAVA] N과M(4) 본문

백준

[백준 15652번] [백트래킹] [JAVA] N과M(4)

hyeals 2020. 9. 18. 22:05

 

import java.util.Scanner;

public class Main {

    static int N;
    static int M;
    static boolean[] visited;
    static int[] answer;
    static StringBuilder ans = new StringBuilder();

    static void backtracking(int num){
        if(num==M){
            for(int i=0; i<M; i++){
                ans.append(answer[i]+" ");
            }
            ans.append("\n");
            return;
        }

        for(int i=1; i<=N; i++){
            if(!visited[i]){
                answer[num] = i;
               if(num!=0 && answer[num] < answer[num-1]){
                    continue;
                }
                backtracking(num+1);
            }
        }
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        N = sc.nextInt();
        M = sc.nextInt();
        visited = new boolean[N+1];
        answer = new int[N+1];

        backtracking(0);

        System.out.println(ans);
    }
}
Comments