문제 :
인접행렬을 보고 i, j까지 가는 경로가 있으면 1 없으면 0을 출력해주는 문제
#include<iostream> using namespace std; int visited[100];//방문여부 int G[100][100];//입력값 int result[100][100];//최종 결과 그래프 int input; void input_value() { cin >> input; for (int i = 0; i < input; i++) { for (int j = 0; j < input; j++) { cin >> G[i][j]; } } } void DFS(int startnode) { for (int i = 0; i < input; i++) { if (G[startnode][i] == 1 && visited[i] != 1) { visited[i] = 1; DFS(i); } } } void init_visited() { for (int i = 0; i < input; i++) { visited[i] = 0;//초기화 } } int main() { input_value(); for (int h = 0; h < input; h++) { init_visited(); DFS(h); for (int i = 0; i < input; i++) { result[h][i] = visited[i]; //cout << result[h][i] << " "; } //cout << endl; } for (int i = 0; i < input; i++) { for (int j = 0; j < input; j++) { cout << result[i][j] << " "; } cout << endl; } }
'ALGORITHM' 카테고리의 다른 글
java연습_2920_음계 (0) | 2017.09.21 |
---|---|
11827_배추심기 (0) | 2017.09.20 |
Algospot_자바스크립트_Helloworld (0) | 2017.09.18 |
최단 경로 전략 (0) | 2017.09.17 |
프로그래머스_카카오프렌즈 컬러링 북 (0) | 2017.09.16 |