본문 바로가기

Algorithm

C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 11403번:경로 찾기(DFS) 답

반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <cstdio>
#include <queue>
#include <cstring>
using namespace std;
int N,a[101][101],d[101][101],c[101][101],t;
queue <int> q;
void DFS(int x)//정점 x에 연결되어 있는 모든 간선을 확인하고 경로에 등록한다
{
    for (int i = 1; i <= N; i++)
    {
        if (a[x][i] == && c[x][i] == 0)
        {
            d[t][i] = 1;
            c[x][i] = 1;
            DFS(i);
        }
    }
}
int main() {
    cin >> N;
    
    for (int i = 1; i <= N; i++)
        for (int j = 1; j <= N; j++)
        {
            cin >> a[i][j];
            
        }
    for (int i = 1; i <= N; i++)
    {
        t = i;//정점 t를 저장 탐색이 끝날때까지 정점이 변하면 안된다
        DFS(i);
        memset(c, 0sizeof(c));
    }
    for (int i = 1; i <= N; i++, puts(""))
        for (int j = 1; j <= N; j++)
            cout << d[i][j] << ' ';
}
cs