문제 : https://programmers.co.kr/learn/courses/30/lessons/43162#
코딩테스트 연습 - 네트워크
네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있
programmers.co.kr
이 문제는 그냥 일반적인 DFS로 풀었더니 금방 풀렸당
BFS로도 풀 수 있을 것 같지만 나는 DFS로 풀었당 히히
#include <string>
#include <vector>
using namespace std;
bool visit[201];
void DFS(int idx, vector<vector<int>> computers, int n)
{
for(int i=0; i<n; i++)
{
if (computers[idx][i] && !visit[i])
{
visit[i] = true;
DFS(i, computers, n);
}
}
}
int solution(int n, vector<vector<int>> computers) {
int answer = 0;
for(int i=0; i<n; i++)
{
if(visit[i] == false)
{
visit[i] = true;
DFS(i, computers, n);
answer++;
}
}
return answer;
}
'알고리즘 > DBS와BFS' 카테고리의 다른 글
[백준/C++] 7569번 토마토(3차원) - BFS (0) | 2022.01.25 |
---|---|
[백준/C++] 2667번 단지번호붙이기 - BFS (0) | 2022.01.24 |
[프로그래머스/C++] 타겟 넘버 (DFS/BFS) (0) | 2022.01.15 |
[백준/C++] 2606번 바이러스 - DFS (0) | 2022.01.14 |
[백준/C++] 2606번 바이러스 - BFS (0) | 2022.01.13 |