https://programmers.co.kr/learn/courses/30/lessons/43162
#include <string>
#include <vector>
#include <cstring>
#include <queue>
using namespace std;
int answer = 0;
int net[205];
int N;
vector<vector<int>> c;
void bfs(int i){
net[i] = i;
answer +=1;
queue<int> q;
q.push(i);
while(!q.empty()){
int num = q.front();
q.pop();
for(int k=0; k<N; k++){
if(c[num][k] == 1 && k!=num && net[k] == -1){
q.push(k);
net[k] = i;
}
}
}
}
int solution(int n, vector<vector<int>> computers) {
N = n;
c = computers;
memset(net,-1,sizeof(net));
for(int i=0; i<n; i++){
if(net[i] == -1){
bfs(i);
}
}
return answer;
}
'프로그래머스' 카테고리의 다른 글
단어 변환 C++ (0) | 2022.01.29 |
---|---|
경주로 건설 C++ (0) | 2022.01.29 |
N으로 표현 C++ (0) | 2022.01.23 |
거리두기 확인하기 C++ (0) | 2021.12.03 |
징검다리 건너기 C++ (0) | 2021.10.06 |