[프로그래머스] 네트워크(c++)

Peace·2021년 6월 28일
0

[프로그래머스] 네트워크(c++)

문제 접근

dfs문제이다.
모든 node들을 검사한다.
node들을 검사할 때는 자신과 연결되어 있고, 이전에 검사한 적이 없으면, 검사한다.
이전에 검사한 것을 표시하기 위해, 일차원 배열을 최대 크기만큼 만들어준다.

코드 구현(c++)

#include <string>
#include <vector>
#include <cstring>
const int max = 201;
bool check[max];

using namespace std;
void dfs(int n, vector<vector<int>> computers){
    for(int i = 0 ; i < computers[n].size() ; i++){
        if(computers[n][i] && !check[i]){
            check[i] = true;
            dfs(i, computers);
        }
    }
}
int solution(int n, vector<vector<int>> computers) {
    int answer = 0;
    memset(check, false, sizeof(check));
    for(int i = 0 ; i < computers.size() ; i++){
        if(!check[i]){
            check[i] = true;
            dfs(i, computers);
            answer++;
        }
    }
    return answer;
}
profile
https://peace-log.tistory.com 로 이사 중

0개의 댓글