#include <string> #include <vector> #include <queue> using namespace std; void DFS(int cur, vector<bool>& vis, vector<vector<int>>& computers, int n){ vis[cur] = true; for(int i=0;i<n;i++) { if(!vis[i] and computers[cur][i]){ DFS(i, vis, computers, n); } } } int solution(int n, vector<vector<int>> computers) { // 110 // 110 // 001 int ans = 0; vector<bool> vis(n, false); for(int i=0;i<n;i++) { if(!vis[i]){ ans++; DFS(i, vis, computers, n); } } return ans; }
- key point!
:DFS
로하나의 점
에연결된 모든 점
을방문 체크
하면서 네트워크 개수를 세야 한다!