[프로그래머스] 43162. 네트워크

최대 1 분 소요

문제 링크

[프로그래머스] 43162. 네트워크


풀이 과정

연결 요소의 개수를 구하는 문제입니다.

모든 방문하지 않은 정점을 기준으로 dfs 를 돌며, 연결 요소의 개수를 증가시킵니다.


코드

public class Main {
    public static int solution(int n, int[][] computers) {
        int answer = 0;
        boolean[] visit = new boolean[n];

        for (int i = 0; i < n; i++) {
            if (!visit[i]) {
                dfs(i, computers, visit);
                answer++;
            }
        }

        return answer;
    }

    public static void dfs(int idx, int[][] computers, boolean[] visit) {
        visit[idx] = true;

        for (int j = 0; j < computers[idx].length; j++) {
            if (j != idx && !visit[j] && computers[idx][j] == 1) {
                dfs(j, computers, visit);
            }
        }
    }

    public static void main(String[] args) {
        int n = 3;
        int[][] computers = {{1, 1, 0}, {1, 1, 0}, {0, 0, 1}};
//        int[][] computers = {{1, 1, 0}, {1, 1, 1}, {0, 1, 1}};

        solution(n, computers);
    }
}

카테고리:

업데이트:

댓글남기기