짱아의 개발 기록장

프로그래머스. 네트워크(c++) / BFS 본문

Algorithm/Programmers

프로그래머스. 네트워크(c++) / BFS

jungahshin 2021. 1. 8. 20:05
반응형

아주 기본적인 BFS문제이다.

방문하지 않은 컴퓨터에 방문해서 연결된 모든 컴퓨터들을 하나의 네트워크로 연결해주는 작업을 bfs로 해주면 된다.

 

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
30
31
32
#include <string>
#include <vector>
#include <queue>
 
using namespace std;
 
int solution(int n, vector<vector<int>> computers) {
    int answer = 0;
    int visited[201= {0, };
    
    for(int j=0; j<computers.size(); j++){
        if(visited[j]) continue;
        answer++;
        queue<int> q;
        q.push(j);
        while(!q.empty()){
            int computer = q.front();
            visited[computer] = 1;
            q.pop();
 
            for(int i=0; i<computers.size(); i++){
                if(!visited[i] && (computers[computer][i]==1 || computers[i][computer]==1)){
                    visited[i] = 1;
                    q.push(i);
                }
            }
        }        
    }
 
    
    return answer;
}
cs
반응형
Comments