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

Seulguo·2022년 10월 7일
0

Algorithm

목록 보기
184/185
post-thumbnail
post-custom-banner

🐣 문제

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


🐤 풀이

  1. 각 컴퓨터마다 방문하지 않았으면, DFS를 돌린다.

(DFS)

  1. 방문 체크하고, 컴퓨터에 연결된 다른 컴퓨터가(자신 포함) 방문하지 않았으면,
  2. DFS를 돌린다.

🐥 코드

#include <string>
#include <vector>
#include <cstring>
using namespace std;
bool visited[201];
void DFS(int cur, int n, vector<vector<int>> computers){
    visited[cur] = true;
    
    for(int i = 0; i < n; i ++){
        if(!visited[i] && computers[cur][i] == 1)
            DFS(i, n, computers);
    }
}

int solution(int n, vector<vector<int>> computers) {
    int answer = 0;
    memset(visited, false, sizeof(visited));
    
    for(int i = 0; i < n; i ++){
        if(!visited[i]){
            DFS(i, n, computers);
            answer ++;
        }
    }
    
    return answer;
}

post-custom-banner

0개의 댓글