[프로그래머스] 네트워크 C++
by 너나나https://programmers.co.kr/learn/courses/30/lessons/43162
이 경우 2개의 네트워크가 있는거(1-2, 3)
이 경우 1개의 네트워크가 있는거(1-2-3)
연결된 네트워크까지 쭉 dfs로 탐색하고 아직 탐색도 안했고 연결도 안됐으면 dfs가 다시 실행되니까 그 새로 실행되는 dfs가 몇 번인지 알면 된다!!
#include <string>
#include <vector>
using namespace std;
int check[200]; // 노드에 방문했는지 안했는지 체크
void dfs(int x, int n, vector<vector<int>> computers) {
for(int i = 0; i < n; i++) {
check[x] = 1; // 방문한거 표시
if(!check[i] && computers[x][i]) {
check[i] = 1; // 방문한거 표시
dfs(i, n, computers);
}
}
return;
}
int solution(int n, vector<vector<int>> computers) {
int answer = 0;
for(int i = 0; i < n; i++) {
if(!check[i]) {
dfs(i, n, computers);
answer++;
}
}
return answer;
}
'study > 알고리즘' 카테고리의 다른 글
[프로그래머스] 더 맵게 C++ (1) | 2022.05.12 |
---|---|
[프로그래머스] 기능개발 C++ (1) | 2022.05.11 |
[프로그래머스] 완주하지 못한 선수 C++ (1) | 2022.05.11 |
[프로그래머스] 숫자 문자열과 영단어 C++ (0) | 2022.05.09 |
[프로그래머스] 신고 결과 받기 C++ (0) | 2022.05.09 |
블로그의 정보
공부 기록
너나나