반응형
백준 알고리즘
DFS
경로찾기
https://www.acmicpc.net/problem/11403
#include <iostream>
#include <algorithm>
using namespace std;
int N;
int map[100][100];
int visited[100] = { 0, };
int result[100][100];
void dfs(int p);
int main() {
cin >> N;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
cin >> map[i][j];
}
}
for (int k = 0; k < N; k++) {
dfs(k);
for (int t = 0; t < N; t++) {
result[k][t] = visited[t];
visited[t] = 0;
}
}
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
cout << result[i][j] << ' ';
}
cout << endl;
}
return 0;
}
void dfs(int p) {
for (int k = 0; k < N; k++) {
if (map[p][k] == 1 && visited[k] == 0) {
visited[k] = 1;
dfs(k);
}
}
}
반응형
'코딩테스트 문제풀이 > 백준' 카테고리의 다른 글
[백준] 별 찍기 - 10 (0) | 2021.04.06 |
---|---|
[백준][BFS] 토마토 (0) | 2020.03.01 |
[백준][DFS] 적록색약 (0) | 2020.03.01 |