Algorithm/📖Baekjoon
#11403 경로 찾기
yewoneeee
2022. 6. 25. 15:55
# 문제
# 입력 및 출력
# 풀이
N*N 행렬을 전부 조회해서 해당 좌표를 시작점으로 잡고 연결된 곳을 전부 1로 표시해줌
시작점으로 잡았던 좌표만 visit를 체크해줌
#include <iostream>
using namespace std;
int graph[100][100];
int visit[100][100];
int n;
void dfs(int x, int y) {
visit[x][y] = 1;
for (int i = 0; i < n; i++) {
if (graph[y][i]) {
graph[x][i] = 1;
if (!visit[x][i]) dfs(x, i);
}
}
}
void print() {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << graph[i][j] << " ";
}
cout << "\n";
}
}
int main() {
cin >> n;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> graph[i][j];
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (graph[i][j] && !visit[i][j]) dfs(i, j);
}
}
print();
}