BOJ 백준 [11403] 경로 찾기

2019. 9. 18. 22:28Algorithm/ 백준 온라인 저지

문제 설명


IDEA

문제를 탐색해보면 DFS로 문제를 풀 수 있다. 


 

CODE

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#define MAX_NODE 100
#define INIT_PREV -1
int visited[MAX_NODE][MAX_NODE] = { 0, };
int adj[MAX_NODE][MAX_NODE];
int N;
 
void dfs(int start, int prev, int now) {
    if (visited[start][now] == 1) {
        return;
    }
    if (prev != INIT_PREV) { //처음 탐색을 했을 때, start에서 now로 가는 경우는 start = now인 경우이다. 
                             //따라서, 본인에서 본인으로 갈 수 없는 경우에도 불구하고 
                             //본인에서 본인으로 갈 수 있다고 판별하는 것을 방지하기 위해 사용하였다.
        visited[start][now] = 1;
    }
 
    for (int i = 0; i < N; i++) {
        if (adj[now][i] == 1) {
            dfs(start, now, i);
        }
    }
}
Colored by Color Scripter