μ½λ©ν
μ€νΈ
[μΈνλ°/DFS/9.μ‘°ν©κ΅¬νκΈ°] - μ 리 μ€ -
μν리ν°μ§νΈ
2024. 3. 26. 20:57
<<νμ΄>>
μΌλ¨ λ΄κ° μκ°ν λ Όλ¦¬λλ‘ μ§νμ νλλ° μ΄λμ κ° λ§ν κ² κ°λ€ γ γ γ
μλ§ μ€κ°μ λμ³€κ±°λ μ€μν λΆλΆμ΄ μμ κ²μ΄λΌκ³ λ³Έλ€.
μ΄λ€ λ Όλ¦¬λ‘ μμ§μ΄λμ§ νμ μ λμ§λ§ μ¬μ ν ν·κ°λ¦¬λ DFS γ γ ‘γ
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
class Main {
static int[] ch;
static ArrayList<Integer> list = new ArrayList<>();
private void DFS(int L, int i, int n, int m) {
if (L == m) {
for (int x : list) {
System.out.print(x + " ");
}
list.clear();
return;
}
if (ch[i] == 1) return;
else {
ch[i] = 1;
list.add(i);
for (int j = 1; j <= n ; j++) {
DFS(L+1, j, n, m);
ch[i] = 0;
}
}
}
public static void main(String[] args) throws Exception{
Main T = new Main();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
char[] arr = br.readLine().toCharArray();
int n = Integer.parseInt(String.valueOf(arr[0]));
int m = Integer.parseInt(String.valueOf(arr[2]));
ch = new int[n+1];
for (int i = 1; i <= n; i++) {
T.DFS(0, i, n, m);
}
}
}
-κ°μ¬λ νμ΄-
μ .. μ λ§ μ κΈ°νκ² νμλ€.'
κ°μ¬λ μ " μ΄ νμ΄λ κ·Έλ₯ μΈμ°λκ² μ’λ€!! "
μΌλ¨ μ΄λ€ μ리μΈμ§λ κΉ¨λ¬μλ€. μ‘°κΈ μλ€κ° μ΅μ’ λ§λ¬΄λ¦¬ νκ² λ€.
import java.util.*;
class Main{
static int[] combi;
static int n, m;
public void DFS(int L, int s){
if(L==m){
for(int x : combi) System.out.print(x+" ");
System.out.println();
}
else{
for(int i=s; i<=n; i++){
combi[L]=i;
DFS(L+1, i+1);
}
}
}
public static void main(String[] args){
Main T = new Main();
Scanner kb = new Scanner(System.in);
n=kb.nextInt();
m=kb.nextInt();
combi=new int[m];
T.DFS(0, 1);
}
}