반응형
이 문제는 친구관계를 입력받아서 결혼식에 올 사람들의 수를 구하는 문제입니다.
상근이의 학번은 1이고 자신의 친구들과 친구의 친구들을 결혼식에 부르려고 합니다.
따라서 입력들을 저장한 후 친구들과 친구의 친구들까지의 수를 세서 출력하면 됩니다.
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
List<List<Integer>> l = new ArrayList<>();
for(int i = 0; i<=N; i++)
l.add(new ArrayList<>());
int M = Integer.parseInt(br.readLine());
for(int i = 0; i<M; i++){
StringTokenizer st = new StringTokenizer(br.readLine());
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
l.get(A).add(B);
l.get(B).add(A);
}
Queue<Integer> q = new LinkedList<>();
int sum = 0;
boolean[] visited = new boolean[N+1];
visited[1] = true;
//친구들을 확인
for(int i = 0; i<l.get(1).size(); i++){
int friend = l.get(1).get(i);
if(visited[friend])
continue;
visited[friend] = true;
sum++;
q.offer(friend);
}
while(!q.isEmpty()){
int friend = q.poll();
for(int i = 0; i<l.get(friend).size(); i++){
int friendFriend = l.get(friend).get(i);
if(visited[friendFriend])
continue;
sum++;
visited[friendFriend] = true;
}
}
System.out.println(sum);
}
}
반응형
'알고리즘 > 너비 우선 탐색(bfs)' 카테고리의 다른 글
백준 2573번 : 빙산 java (0) | 2022.07.04 |
---|---|
백준 2583번 : 영역 구하기 java (0) | 2022.07.03 |
백준 18405번 : 경쟁적 전염 java (0) | 2022.07.01 |
백준 1261번 : 알고스팟 java (0) | 2022.06.27 |
백준 16236번 : 아기 상어 java (0) | 2022.06.25 |
댓글