Deff_Dev
[프로그래머스] 네트워크 (C++) 본문
문제
이 문제는 간선으로 이어진 그래프(네트워크)의 갯수를 구하는 문제이다.
풀이
BFS를 이용하여 각 노드들을 탐색하고 간선으로 이어지지 않은 정점의 갯수를 구하는 방법으로 풀이했다.
#include <string>
#include <vector>
#include <queue>
using namespace std;
bool visited[200] = {false,};
void BFS(vector<vector<int>> computers , int startNode){
queue<int> q;
q.push(startNode);
visited[startNode] = true;
while(!q.empty()){
int node = q.front();
q.pop();
for(int i = 0 ; i< computers[node].size(); i++){
if(!visited[i] && computers[node][i] == 1){
visited[i] = true;
q.push(i);
}
}
}
}
int solution(int n, vector<vector<int>> computers) {
int answer = 0;
for(int i = 0; i< n; i++){
if(!visited[i]){
BFS(computers , i);
answer++;
}
}
return answer;
}
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 단어 변환 (C++) (0) | 2024.08.16 |
---|---|
[프로그래머스] 게임 맵 최단거리 (C++) (0) | 2024.08.16 |
[프로그래머스] 타겟 넘버 (C++) (0) | 2024.08.16 |
[프로그래머스] 예산 (C++) (0) | 2024.05.15 |
[프로그래머스] 부족한 금액 계산하기 (C++) (0) | 2024.04.13 |