๐ท๐ผ๋ชจ์ฌ๋ด์ ๊ฐ๋ฐ์์ฒ๐ท๐ผ
๋ถ๋ถ์งํฉ ๊ตฌํ๊ธฐ(DFS) ๋ณธ๋ฌธ
๋ฐ์ํ
๋ฌธ์
์์ฐ์ N์ด ์ฃผ์ด์ง๋ฉด 1๋ถํฐ N๊น์ง์ ์์๋ฅผ ๊ฐ๋ ์งํฉ์ ๋ถ๋ถ์งํฉ์ ๋ชจ๋ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ ์ ์์ฑํ์ธ์.
์ ๋ ฅ์ค๋ช
์ฒซ ๋ฒ์งธ ์ค์ ์์ฐ์ N(1<=N<=10)์ด ์ฃผ์ด์ง๋๋ค.
์ถ๋ ฅ์ค๋ช
์ฒซ ๋ฒ์งธ ์ค๋ถํฐ ๊ฐ ์ค์ ํ๋์ฉ ๋ถ๋ถ์งํฉ์ ์๋์ ์ถ๋ ฅ์์ ์ ๊ฐ์ ์์๋ก ์ถ๋ ฅํ๋ค. ๋จ ๊ณต์งํฉ์ ์ถ๋ ฅํ์ง ์์ต๋๋ค.
์ ๋ ฅ์์
3
์ถ๋ ฅ์์
1 2 3
1 2
1 3
1
2 3
2
3
import java.util.*;
class Main {
static int n;
static int[] ch;
public void DFS(int L) {
// 4๊ฐ๋์์๋
if(L == n+1) {
String tmp = "";
for(int i=1; i<=n; i++) {
if(ch[i] == 1) {
tmp += (i + " ");
}
}
if(tmp.length() > 0) {
System.out.println(tmp);
}
}else {
// ์ฌ์ฉํ๋ค
ch[L] = 1;
// ์ผ์ชฝ๋
ธ๋
DFS(L+1);
// ์ฌ์ฉํ์ง์๋๋ค
ch[L] = 0;
// ์ค๋ฅธ์ชฝ ๋
ธ๋
DFS(L+1);
}
}
public static void main(String args[]) {
Main T = new Main();
n=3;
// ์ธ๋ฑ์ค๋ฒํธ๋ฅผ ์ซ์๋ก ์๊ฐํ๊ธฐ
ch = new int[n+1];
T.DFS(1);
}
}
'๊ฐ๋ฐ > ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JAVA/์ฝ๋ฉํ ์คํธ] ์ก์์ง ์ฐพ๊ธฐ (BFS : ์ํํธ๋ฆฌํ์) (0) | 2021.08.01 |
---|---|
์ด์งํธ๋ฆฌ์ํ : ๋์ด์ฐ์ ํ์ - ๋ ๋ฒจํ์(BFS : Breadth-First Search) (0) | 2021.07.30 |
์ด์งํธ๋ฆฌ์ํ : ๊น์ด์ฐ์ ํ์(DFS : Depth-fist Search) (0) | 2021.07.27 |
[JAVA/์ฝ๋ฉํ ์คํธ] ํผ๋ณด๋์น ์์ด(๋ฉ๋ชจ์ด์ ์ด์ ) (0) | 2021.07.13 |
[JAVA/์ฝ๋ฉํ ์คํธ] ํฉํ ๋ฆฌ์ผ (0) | 2021.07.13 |
Comments