계단을 오르듯이

[JAVA] 네트워크 본문

알고리즘/프로그래머스

[JAVA] 네트워크

happyAyun 2022. 1. 8. 15:26

주어진 이중 배열은 서로 연결을 확인하는 배열로 이용하고, 선택된 노드인지를 확인하기 위한 배열을 하나 만들었다.

dfs 재귀방식을 통해 네트워크의 연결을 알아내었다.

 

import java.util.*;

class Solution {
    
    public int solution(int n, int[][] computers) {
        int answer = 0;
        boolean[] visited = new boolean[n];
        for(int i=0;i<n;i++){
            if(!visited[i]){
                answer += 1;
                dfs(i, visited, n, computers);
            }
        }
        return answer;
    }

    private static void dfs(int node, boolean[] visited, int n, int[][] computers){
        for(int i=0;i<n;i++){
            if(computers[node][i] == 1 && !visited[i]){
                visited[i] = true;
                dfs(i, visited, n, computers);
            }
        }            
    }
}

'알고리즘 > 프로그래머스' 카테고리의 다른 글

[JAVA] 프로그래머스 - 프린터  (0) 2022.01.29
[JAVA] 프로그래머스_베스트 앨범  (0) 2022.01.12
[JAVA] 타겟 넘버  (0) 2022.01.08
[JAVA] 소수 찾기(완전탐색)  (0) 2022.01.07
[JAVA] 가장 큰 수  (0) 2022.01.07