# 문제

# 입력 및 출력

# 풀이
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();
}

'Algorithm > 📖Baekjoon' 카테고리의 다른 글
| #1966 프린터 큐 (0) | 2022.06.28 |
|---|---|
| #11052 카드 구매하기 (0) | 2022.06.26 |
| #1004 어린 왕자 (0) | 2022.06.24 |
| #1051 숫자 정사각형 (0) | 2022.06.23 |
| #1074 Z (0) | 2022.06.22 |
댓글