본문 바로가기
코딩 테스트

프로그래머스 네트워크 - DFS

by 주용사 2023. 1. 9.
728x90

문제를 잘못읽어서 오래걸림. 네트워크가 나뉘어잇는 개수를 찾는문제

 
class Solution {    
    public int solution(int n, int[][] computers) {
        int answer = 0;
        
        boolean[] visited = new boolean[n];
    
        for(int ii = 0 ; ii < n ; ii++)
        {
            /* 같은 네트워크의 조사가 끝날때마다 카운트 */
            if(dfs(n, ii, computers, visited))
                answer++;
        }
             
        return answer;
    }
    
    public static boolean dfs(int n, int start, int[][] computers, boolean[] visited)
    {
        if(visited[start] == true)
            return false;
        else
            visited[start] = true; /* 시작점 방문처리 */
                
        for(int ii = 0 ; ii < n ; ii++)
        {
            if(computers[start][ii] == 1 && visited[ii] == false) /* 연결되어있고 방문안했다면 */
                dfs(n, ii, computers, visited);
        }
        
        return true;
    }
}
728x90