네트워크

고장난·2021년 7월 31일
0
https://programmers.co.kr/learn/courses/30/lessons/43162
#include <string>
#include <vector>

using namespace std;

void dfs(int node, vector<vector<int>>& computers, vector<bool>& visited, int n){
    visited[node]=true;
    for(int i=0;i<n;i++){
       if(!visited[i]&&computers[node][i])dfs(i,computers,visited,n); 
    }    
}

int solution(int n, vector<vector<int>> computers) {
    int answer = 0;
    vector<bool> visited(n,false);
    for(int i=0;i<n;i++){
        if(!visited[i]){
            answer++;
            dfs(i,computers,visited,n);
        }
    }
    
    
    return answer;
}
정확성  테스트
테스트 1 〉	통과 (0.01ms, 3.93MB)
테스트 2 〉	통과 (0.01ms, 3.95MB)
테스트 3 〉	통과 (0.01ms, 3.94MB)
테스트 4 〉	통과 (0.01ms, 3.93MB)
테스트 5 〉	통과 (0.01ms, 3.94MB)
테스트 6 〉	통과 (0.02ms, 3.94MB)
테스트 7 〉	통과 (0.01ms, 3.9MB)
테스트 8 〉	통과 (0.02ms, 3.82MB)
테스트 9 〉	통과 (0.01ms, 3.92MB)
테스트 10 〉	통과 (0.02ms, 3.93MB)
테스트 11 〉	통과 (0.04ms, 4MB)
테스트 12 〉	통과 (0.05ms, 3.96MB)
테스트 13 〉	통과 (0.03ms, 3.72MB)
채점 결과
정확성: 100.0
합계: 100.0 / 100.0
깊이우선 탐색 문제이다.

깊이우선 탐색방식에서 재귀함수를 이용해 보았고 추후 stack을 이용한 코드를 작성 해볼 예정

점의 방문 여부를 판단하고 깊이우선 탐색을 하는 방식을 for문으로 돌렸다.

profile
훈련중

0개의 댓글

관련 채용 정보