๐ท๐ผ๋ชจ์ฌ๋ด์ ๊ฐ๋ฐ์์ฒ๐ท๐ผ
๊ฒฝ๋กํ์(์ธ์ ๋ฆฌ์คํธ, ArrayList) ๋ณธ๋ฌธ
๊ฐ๋ฐ/์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด JAVA
๊ฒฝ๋กํ์(์ธ์ ๋ฆฌ์คํธ, ArrayList)
์์ผ์ด 2021. 8. 2. 22:48๋ฐ์ํ
๊ฒฝ๋กํ์ ์ ์ ์ ์ด ๋ง์์ง๋ฉด ArrayList๋ก ๊ตฌํํด์ผํ๋ค
์ค๋ช
๋ฐฉํฅ๊ทธ๋ํ๊ฐ ์ฃผ์ด์ง๋ฉด 1๋ฒ ์ ์ ์์ N๋ฒ ์ ์ ์ผ๋ก ๊ฐ๋ ๋ชจ๋ ๊ฒฝ๋ก์ ๊ฐ์ง ์๋ฅผ ์ถ๋ ฅํ๋ ํ ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์. ์๋ ๊ทธ๋ํ์์ 1๋ฒ ์ ์ ์์ 5๋ฒ ์ ์ ์ผ๋ก ๊ฐ๋ ๊ฐ์ง ์๋
1 2 3 4 5
1 2 5
1 3 4 2 5
1 3 4 5
1 4 2 5
1 4 5
์ด 6 ๊ฐ์ง์ ๋๋ค.
์ ๋ ฅ์ค๋ช
์ฒซ์งธ ์ค์๋ ์ ์ ์ ์ N(1<=N<=20)์ ๊ฐ์ ์ ์ M๊ฐ ์ฃผ์ด์ง๋ค. ๊ทธ ๋ค์๋ถํฐ M์ค์ ๊ฑธ์ณ ์ฐ ๊ฒฐ์ ๋ณด๊ฐ ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ์ค๋ช
์ด ๊ฐ์ง์๋ฅผ ์ถ๋ ฅํ๋ค.
์ ๋ ฅ์์
5 9
1 2
1 3
1 4
2 1
2 3
2 5
3 4
4 2
4 5
์ถ๋ ฅ์์
6
- ๊ตฌํ
import java.util.*;
class Main{
static int n, m, answer = 0;
static ArrayList<ArrayList<Integer>> graph;
static int[] ch;
public void DFS(int v) {
if(v==n) {
answer ++;
}else {
for(int nv : graph.get(v)) {
if(ch[nv] == 0) {
ch[nv] = 1;
DFS(nv);
ch[nv] = 0;
}
}
}
}
public static void main(String[] args) {
Main T = new Main();
Scanner in = new Scanner(System.in);
// ์ ์ ์ ๊ฐฏ์
n=in.nextInt();
// ๊ฐ์ ์ ๊ฐฏ์
m=in.nextInt();
// ์ธ์ ๋ฆฌ์คํธ ์ด๊ธฐํ
graph = new ArrayList<ArrayList<Integer>>();
for(int i=0; i<=n; i++) {
graph.add(new ArrayList<Integer>());
}
ch = new int[n+1];
// ๊ฐ ๋ฃ๊ธฐ
for(int i=0; i<m; i++) {
int a = in.nextInt();
int b = in.nextInt();
graph.get(a).add(b);
}
ch[1] = 1;
T.DFS(1);
System.out.println(answer);
}
}
'๊ฐ๋ฐ > ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JAVA/์ฝ๋ฉํ ์คํธ] ๊ฐ์ฅ ์งง์ ๋ฌธ์๊ฑฐ๋ฆฌ (0) | 2021.10.04 |
---|---|
๊ทธ๋ํ ์ต๋จ๊ฑฐ๋ฆฌ(BFS) (0) | 2021.08.02 |
๊ฒฝ๋ก ํ์(์ธ์ ํ๋ ฌ) (0) | 2021.08.02 |
๊ทธ๋ํ์ ์ธ์ ํ๋ ฌ (0) | 2021.08.01 |
Tree ๋ง๋จ๋ ธ๋๊น์ง์ ๊ฐ์ฅ ์งง์ ๊ฒฝ๋ก(DFS, BFS) (0) | 2021.08.01 |
Comments