ALGORITHM

백준_11403_경로찾기

서울소시민 2017. 9. 19. 08:59

문제 :


인접행렬을 보고 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