반응형

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

 

코딩테스트 연습 - 네트워크

네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있

programmers.co.kr

 

모든 컴퓨터에서 dfs를 돌며 네트워크의 개수를 찾아주었습니다.

#include <string>
#include <vector>

using namespace std;

bool visit[200] = {false};

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

int solution(int n, vector<vector<int>> computers) {
    int answer = 0;
    for(int i=0; i < n; i++) {
        if(!visit[i]) {
            dfs(i, computers);
            answer++;
        }
    }
    return answer;
}
반응형

'Algorithm' 카테고리의 다른 글

프로그래머스 : 기능개발  (0) 2021.11.13
프로그래머스 : 섬 연결하기  (0) 2021.11.13
프로그래머스 : 가사 검색  (0) 2021.11.13
프로그래머스 : 크레인 인형뽑기 게임  (0) 2021.11.13
백준 10282 : 해킹  (0) 2021.11.13

+ Recent posts