이전 문제랑은 다르게 이 문제부터는 가지가 2 가닥이 아닌 여러 가닥으로(N번) 뻗는다.
출력할 숫자를 넣어놓을 배열이 필요하다.
L은 숫자를 뽑는 갯수로 설정한다.
import java.util.*;
public class Main {
static int[] pm;
static int n, m;
public void DFS(int L) {
if(L==m) {
for(int x : pm) System.out.print(x + " ");
System.out.println();
}
else {
//2가닥이 아닌 N가닥씩 뻗어나가야함.
for(int i = 1; i <= n; i++) {
pm[L] = i;
//1~n까지 원소로 사용한다.
DFS(L+1);
}
}
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
n = kb.nextInt();
m = kb.nextInt();
pm = new int[m];
T.DFS(0);
}
}
'Algorithm > inflearn' 카테고리의 다른 글
순열 구하기(DFS) (0) | 2021.10.04 |
---|---|
동전교환(DFS, BFS) (0) | 2021.10.03 |
최대점수 구하기(DFS) (0) | 2021.10.03 |
바둑이 승차(DFS) (0) | 2021.10.03 |
#합이 같은 부분집합(DFS) (0) | 2021.10.03 |