DFS/BFS>네트워크[프로그래머스-JAVA]

sujin·2025년 2월 13일

📝문제

📝알고리즘

//현재 컴퓨터를 방문하여 방문 여부를 기록
//연결된 컴퓨터를 확인해서 방문하지 않았다면 DFS수행하도록 dfs 메서드 작성
//n개의 컴퓨터와 연결 정보를 입력받아
//모든 컴퓨터를 순회하며 DFS탐색
//방문하지 않은 컴퓨터를 발견하면 네트워크 수 증가
//네트워크의 총 개수 반환

📝구현

class Solution {
    private boolean[] visited;
    private int[][] computers;

    private void dfs(int now) {
        visited[now] = true;
        for (int i = 0; i < computers[now].length; i++) {
            if (computers[now][i] == 1 && !visited[i]) {
                dfs(i);
            }
        }
    }

    public int solution(int n, int[][] computers) {
        int answer = 0;
        visited = new boolean[n];     
        this.computers = computers;   

        for (int i = 0; i < n; i++) {
            if (!visited[i]) {
                dfs(i);
                answer++;
            }
        }
        return answer;
    }
}

📌기록하고 싶은 내용

profile
열공!

0개의 댓글