[C++]프로그래머스 네트워크
문제는 다음과 같다.
오늘은 프로그래머스 네트워크 문제를 풀어보도록 하자. DFS문제로 그룹의 갯수를 리턴하는 문제이다. 각 노드를 탐색하며 탐색한 노드는 0으로 만들어서
방문처리를 해주었다. 탐색했던 노드를 가서 또 연결을 확인하려 한다면 return false로 카운트하지 않았다.
[코드]
#include <string>
#include <vector>
using namespace std;
bool dfs(int idx, vector<vector<int>>& computers) {
if (!computers[idx][idx]) return false;
computers[idx][idx] = 0;
for (int i = 0; i < computers.size(); i++) {
if (computers[idx][i] == 1) {
dfs(i, computers);
}
}
return true;
}
int solution(int n, vector<vector<int>> computers) {
int answer = 0;
for (int i = 0; i < n; i++) {
if (computers[i][i] && dfs(i, computers)) answer++;
}
return answer;
}