https://www.acmicpc.net/problem/11724

1.

학교에서 자료구조 수업시간에 배운 내용이다.

시험 준비할 때 중요하다고 생각해서 공부해두었기에 생각이 났다.

(정○○ 교수님 수업 정말 알차게 열정적으로 해주셔서 감사합니다..)

 

 

2.

기본적인 DFS 탐색을 하되, 연결되지 않은 그래프는 한 번에 탐색되지 않는다.

따라서 방문하지 않은 노드를 찾아 DFS를 수행한다.

 

수업할 때 공부했던 자료를 참고하자.

 

 

3.

import java.util.Scanner;

public class Main {
    static int[][] graph;
    static boolean[] visited;

    public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        int m = sc.nextInt();

        graph = new int[n + 1][n + 1];
        visited = new boolean[n + 1];
        for (int i = 0; i < m; i++) {
            int u = sc.nextInt();
            int v = sc.nextInt();

            graph[u][v] = 1;
            graph[v][u] = 1;
        }

        int cnt = 0;
        for (int i = 1; i <= n; i++) {
            if (!visited[i]) {
                dfs(i, n);
                cnt++;
            }
        }

        System.out.println(cnt);
        sc.close();
    }

    static void dfs(int k, int n) {
        if (visited[k]) {
            return;
        }

        visited[k] = true;
        for (int i = 1; i <= n; i++) {
            if (graph[k][i] == 1) {
                dfs(i, n);
            }
        }
    }
}

 

 

4.

none

 

'Algorithm' 카테고리의 다른 글

[Java] 백준 11403 : 경로 찾기  (0) 2020.08.08
[Java] 백준 14502 : 연구소  (0) 2020.08.07
[Java] 백준 1012 : 유기농 배추  (0) 2020.08.07
[Java] 백준 11057 : 오르막 수  (0) 2020.08.06
[Java] 백준 9465 : 스티커  (0) 2020.08.06
squareyun