시나브로

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

알고리즘/프로그래머스

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

혬혬 2020. 4. 26. 12:31
728x90

DFS/BFS를 이용하는 문제이다.

네트워크가 몇개인지 확인하는 문제로

모든 점을 한바퀴 볼면서 깊이우선탐색을 해주었다. 

만약 이전의 점에서 그 점을 방문했는 경우를 제외하고 갯수를 세주면 답이 된다. 

#include <string>
#include <vector>

using namespace std;
int point_list[210];
void dfs(int k,vector<vector<int>> A){
    for (int i = 0; i < A.size(); i++) {
        if (A[k][i] == 1&&point_list[i]==0) {
            point_list[i] = 1;
            dfs(i, A);
        }
    }
}
int solution(int n, vector<vector<int>> computers) {
    int answer = 0;
    for (int i = 0; i < computers.size(); i++) {
        if (point_list[i] == 0) {
            answer++;
            dfs(i, computers);
        }
    }
    return answer;
}

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

728x90
Comments