백준

백준 15649 -Java

으엉어엉 2024. 9. 26. 11:28
728x90


import java.util.Scanner;

public class NandM {
    static int n, m;
    static int[] s;
    static boolean[] visited;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();
        m = sc.nextInt();

        s = new int[m];
        visited = new boolean[n + 1];
        def(0);
    }

    static void def(int depth) {
        if (depth == m) {
            for (int i = 0; i < m; i++) {
                System.out.print(s[i] + " ");
            }
            System.out.println();
            return;
        }
        for (int i = 1; i <= n; i++) {
            if (!visited[i]) {
                visited[i] = true;
                s[depth] = i;
                def(depth + 1);
                visited[i] = false;
            }
        }
    }
}

 

백트래킹은 DFS일종으로 재귀를 통해 문제를 푼다.

728x90

'백준' 카테고리의 다른 글

백준 1912 - Java  (0) 2024.10.05
백준 15650 - Java  (1) 2024.09.26
백준 17087 - Java  (0) 2024.09.25
백준 9613 - Java  (1) 2024.09.25
백준 6588 - Java  (0) 2024.09.21