SSONG Cloud
[백준] 5567 결혼식 본문
반응형
문제 출처: www.acmicpc.net/problem/5567
5567번: 결혼식
2와 3은 상근이의 친구이다. 또, 3과 4는 친구이기 때문에, 4는 상근이의 친구의 친구이다. 5와 6은 친구도 아니고, 친구의 친구도 아니다. 따라서 2,3,4 3명의 친구를 결혼식에 초대한다.
www.acmicpc.net
: 상근이가 자신의 친구와 친구의 친구까지 초대하려고 할 때 결혼식에 초대할 사람의 수를 구해야 한다.
: 상근이의 친구관계를 인접행렬로 표현한다.
: 인접행렬의 1행 즉, 상근이와 직접 친구인 사람들을 찾으면 그에 해당하는 행을 가서 다시 탐색하면서 상근이의 친구의 친구를 찾는다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static StringBuilder sb = new StringBuilder();
static StringTokenizer st;
public static void main(String[] args) throws NumberFormatException, IOException {
int N = Integer.parseInt(br.readLine()); // 컴퓨터 개수
int[][] adj= new int[N+1][N+1];
boolean[] v = new boolean[N+1];
int M = Integer.parseInt(br.readLine());
for(int i = 0; i < M; i++) {
st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
adj[a][b] = 1;
adj[b][a] = 1;
}
int cnt = 0;
for(int i = 2; i < N+1; i++) {
if(adj[1][i] == 1) {
if(!v[i]) {
cnt++;
v[i] = true;
}
for(int j = 2; j < N+1; j++) {
if(!v[j] && adj[i][j] == 1) {
v[j] = true;
cnt++;
}
}
}
}
System.out.println(cnt);
}
}
반응형
'Algorithm > 백준' 카테고리의 다른 글
[백준] 2589 보물섬 (0) | 2021.04.01 |
---|---|
[백준] 2606 바이러스 (0) | 2021.03.31 |
[백준] 7562 나이트의 이동 (0) | 2021.03.29 |
[백준] 2565 전깃줄 (0) | 2021.03.29 |
[백준] 16236 아기 상어 (0) | 2021.03.28 |
Comments