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 |