백준

백준 15650 - Java

으엉어엉 2024. 9. 26. 12:57
728x90

 

import java.util.Scanner;

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

    //main 함수
    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[m + 1]; //m+1개 boolean값
        dfs(0,1);// depth와 start를 첫번째것 입력
    }

    //재귀로 부름.
    static void dfs(int depth, int start) {
        // 길이가 M인 수열을 완성한 경우
        if (depth == m) {
            for (int i = 0; i < m; i++) {
                System.out.print(s[i] + " ");
            }
            System.out.println();
            return;
        }

        // start부터 n까지 숫자를 하나씩 선택
        for (int i = start; i <= n; i++) {
            s[depth] = i;  // 현재 깊이 위치에 i를 저장
            dfs(depth + 1, i + 1);  // 다음 깊이로 재귀 호출, i+1부터 시작
        }
    }
}
728x90

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

백준 1699 - Java  (0) 2024.10.05
백준 1912 - Java  (0) 2024.10.05
백준 15649 -Java  (0) 2024.09.26
백준 17087 - Java  (0) 2024.09.25
백준 9613 - Java  (1) 2024.09.25