[프로그래머스/완전탐색] 네트워크

강신현·2021년 10월 30일
0

<접근>
dfs 나 bfs로 탐색하면서 한번 돌때마다 answer(네트워크 수) ++

<시간복잡도>

O(V+E)

#include <string>
#include <vector>

using namespace std;

void dfs(vector<vector<int> > &computers, vector<bool> &visited, int com)
{
    visited[com] = true;
    for (int i = 0; i < computers[com].size(); i++)
    {
        if (!visited[i] && computers[com][i] == 1)
        {
            dfs(computers, visited, i);
        }
    }
}

int solution(int n, vector<vector<int>> computers) {
    int answer = 0;
    vector<bool> visited(n, false);
    
    for (int i = 0; i < n; i++)
    {
        if (!visited[i])
        {
            
            dfs(computers, visited, i);
            answer++;
        }
    }
    
    return answer;
}
profile
땅콩의 모험 (server)

0개의 댓글