반응형
[광고 누르면 오늘의 행운 상승!!]
https://www.acmicpc.net/problem/5567
쉬운 그래프 문제
1. 주어진 갯수만큼 노드를 생성한다.
2. 그래프에 간선을 받아서 저장한다.
3. 0번째 노드부터 cnt가 2까지 이동하면서 visit 을 true 시킨다.
4. 총 true된 visit의 갯수를 구한다.
package Study0319;
import java.io.*;
import java.util.*;
public class 결혼식 {
public static boolean[] visit;
public static ArrayList<ArrayList<Integer>> graph;
public static int N,M,ans;
public static void main(String[] args) throws Exception {
System.setIn(new FileInputStream("test.txt"));
Scanner sc = new Scanner(System.in);
N = sc.nextInt();
M = sc.nextInt();
visit = new boolean[N+1];
graph = new ArrayList<>();
for (int i = 0; i < N; i++) {
graph.add(new ArrayList<Integer>());
}
for (int i = 0; i < M; i++) {
int A = sc.nextInt();
int B = sc.nextInt();
graph.get(A).add(B);
graph.get(B).add(A);
}
dfs(1,0);
for (int i = 0; i < N; i++) {
if(visit[i]) ans++;
}
System.out.println(ans-1);
}
private static void dfs(int i, int cnt) {
if(cnt == 2) {
return;
}
for(Integer n : graph.get(i)) {
visit[n] = true;
dfs(n, cnt+1);
}
}
}
반응형
'2. 알고리즘사이트 > 1. 백준' 카테고리의 다른 글
거울 설치 [백준 2151][JAVA][골드5][시뮬레이션][BFS][DP] (0) | 2020.03.24 |
---|---|
피카츄 [백준 14405][JAVA][실버 3][String] (0) | 2020.03.24 |
트리 순회 [백준 1991][JAVA][실버1][트리][Tree] (0) | 2020.03.22 |
테이블 옮기기 [백준 7348][JAVA][실버3][그리디] (0) | 2020.03.22 |
기타 레슨 [백준2343][실버 1][이분탐색][Java] (0) | 2020.03.17 |