[Programmers] 네트워크 - 깊이/너비 우선 탐색(DFS/BFS)

동민·2021년 3월 11일
// 네트워크 - 깊이/너비 우선 탐색(DFS/BFS)
public class Network {
	static boolean visit[];	// visit 전역변수 선언

	public int solution(int n, int[][] computers) {

		int answer = 0;
		visit = new boolean[n];

		for (int i = 0; i < visit.length; i++) {
			if (!visit[i]) {
				answer++;	// 탐색 시 끊어져 있으면 answer를 증가
				dfs_r(n, computers, i);
			}
		}
		return answer;
	}

	// DFS RECURSIVE
	private void dfs_r(int n, int[][] computers, int s) {
		visit[s] = true;
		for (int i = 0; i < n; i++) {
			if (computers[s][i] == 1 && !visit[i]) {
				dfs_r(n, computers, i);
			}
		}
	}
}
  • DFS RECURSIVE
profile
BE Developer

0개의 댓글