728x90
반응형
1. 문제
https://www.acmicpc.net/problem/11403
2. 설명
: 주어진 방향 그래프에서 각 정점을 기준으로 dfs로 연결된 정점들을 방문하면서 visited배열에 체크해 나갑니다. 모두 완료한 이후 visited배열을 출력해줍니다.
3. 코드
#include <iostream>
using namespace std;
int arr[110][110], n;
bool visited[110][110];
void dfs(int first, int x, int y) {
visited[first][y] = true;
for (int i = 1; i <= n; i++) {
if (arr[y][i] && !visited[first][i]) dfs(first, y, i);
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cin >> n;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
cin >> arr[i][j];
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (arr[i][j]) dfs(i, i, j);
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) cout << visited[i][j] << " ";
cout << "\n";
}
return 0;
}
728x90
반응형
'💡 Problem Solving > Baekjoon' 카테고리의 다른 글
[백준 - 10819] 차이를 최대로 [c++] (0) | 2021.01.14 |
---|---|
[백준 - 11724] 연결 요소의 개수 [C++] (1) | 2020.04.20 |
[백준 - 1012] 유기농 배추 [C++] (2) | 2020.04.17 |
[백준 - 2667] 단지번호붙이기 [C++] (1) | 2020.04.17 |
[백준 - 1260] DFS와 BFS [C++] (1) | 2020.04.17 |