Algorithm

[프로그래머스 43162] 네트워크

승우승 2019. 1. 1. 15:56
반응형

문제 출처

https://programmers.co.kr/learn/courses/30/lessons/43162


dfs로 전체 탐색을 하면서 순회가 끝나면 answer값을 1씩 증가시켜주면 된다.

예시를 이해하는데 시간이 좀 걸리긴 했지만 구현자체는 쉬운 문제


소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool visit[200];
 
void dfs(int start, vector<vector<int>> &computers, int n) {
    visit[start]=1;
    for(int i=0; i<n; i++)
    {
        if(!visit[i] && computers[start][i])
            dfs(i, computers, n);
    }
    
}
 
int solution(int n, vector<vector<int>> computers) {
    int answer = 0;
    for(int i=0; i<n; i++)
    {
        if(!visit[i])
        {
            answer++;
            dfs(i, computers, n);
        }
    }
    return answer;
}
 
cs


반응형