• 문제 링크
5567번: 결혼식
예제 1의 경우 2와 3은 상근이의 친구이다. 또, 3과 4는 친구이기 때문에, 4는 상근이의 친구의 친구이다. 5와 6은 친구도 아니고, 친구의 친구도 아니다. 따라서 2, 3, 4 3명의 친구를 결혼식에 초대
www.acmicpc.net
• 풀이 과정
• 풀이 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
public class Main {
static List<Integer>[] graph;
static boolean[] visit;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
int n = Integer.parseInt(br.readLine());
int m = Integer.parseInt(br.readLine());
graph = new ArrayList[n + 1];
for (int i = 0; i <= n; i++)
graph[i] = new ArrayList<>();
for (int i = 0; i < m; i++) {
st = new StringTokenizer(br.readLine());
int src = Integer.parseInt(st.nextToken());
int dest = Integer.parseInt(st.nextToken());
graph[src].add(dest);
graph[dest].add(src);
}
visit = new boolean[n + 1];
visit[1] = true;
dfs(1, 0);
int res = 0;
for (int i = 2; i <= n; i++) {
if (visit[i])
res++;
}
bw.write(String.valueOf(res));
bw.flush();
}
private static void dfs(int src, int cnt) {
if (cnt == 2)
return;
for (int dest : graph[src]) {
visit[dest] = true;
dfs(dest, cnt + 1);
}
}
}
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 6118 숨바꼭질 - Graph Theory / Java (0) | 2022.12.09 |
---|---|
[백준] 2660 회장뽑기 - Graph Theory / Java (0) | 2022.12.08 |
[백준] 17626 Four Squares - Dynamic Programming / Java (1) | 2022.12.06 |
[백준] 1965 상자넣기 - Dynamic Programming / Java (0) | 2022.12.05 |
[백준] 9655 돌 게임 - Dynamic Programming / Java (0) | 2022.12.04 |
댓글