반응형
https://www.acmicpc.net/problem/2606
위의 문제는 BaekJoon Online Judge의 단계별로 풀어보기 중 28단계
DFS와 BFS의 카테고리에 포함되어 있는 문제이다.
1260번의 문제와 비슷하면서 동일한 문제이다.
DFS로 문제를 풀었으며
1번 컴퓨터(정점)부터 다음 컴퓨터를 탐색 할 때 마다 결과값을 한 개씩 늘려주었다.
import java.util.Scanner;
import java.io.IOException;
public class Question_2606 {
static int map[][];
static boolean visit[];
static int n, m;
static int result = 0;
public static void main(String[] agrs) throws IOException {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
m = sc.nextInt();
map = new int[n+1][n+1];
visit = new boolean[n+1];
int num1, num2;
for(int i = 1; i <= m; i++) {
num1 = sc.nextInt();
num2 = sc.nextInt();
map[num1][num2] = map[num2][num1] = 1;
}
dfs(1);
System.out.println(result);
}
public static void dfs(int d) {
visit[d] = true;
for(int i = 1; i < n + 1; i++) {
if(map[d][i] == 1 && !visit[i]) {
result++;
dfs(i);
}
}
}
}
반응형
'BaekJoon > JAVA' 카테고리의 다른 글
[백준] 5585번 : 거스름돈(JAVA) (0) | 2020.02.12 |
---|---|
[백준] 1110번 : 더하기 사이클(JAVA) (0) | 2020.02.12 |
[백준] 2588번 : 곱셈(JAVA) (0) | 2020.02.12 |
[백준] 1008번 : A/B(JAVA) (0) | 2020.02.12 |
[백준] 2557번 : Hello World(JAVA) (0) | 2020.02.12 |
댓글