[백준 알고리즘]/[C++]
5567번 결혼식 | BFS | 백준 5567 C++ 코드
말하는펭귄
2021. 2. 19. 21:05
728x90
반응형
이번 포스팅은 백준 5567번 결혼식입니다.
아래 url를 클릭하시면 백준 사이트에서 문제를 볼 수 있습니다.
5567번: 결혼식
2와 3은 상근이의 친구이다. 또, 3과 4는 친구이기 때문에, 4는 상근이의 친구의 친구이다. 5와 6은 친구도 아니고, 친구의 친구도 아니다. 따라서 2,3,4 3명의 친구를 결혼식에 초대한다.
www.acmicpc.net
기본 알고리즘
BFS 너비 우선 탐색
전체 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
//백준5567 결혼식
#include <iostream>
using namespace std;
int n, m;
const int MAX = 501;
int map[MAX][MAX];
bool visited[MAX];
bool sFriend[MAX]; //상근이와 친구 여부
int ans = 0;
void count() {
//상근이의 친구
for (int i = 2; i <= n; i++) {
if (map[1][i] == 1) {
visited[i] = true; //방문
sFriend[i] = true; //상근이와 친구
}
}
//상근이의 친구의 친구
for (int i = 2; i <= n; i++) {
if (sFriend[i]) { //상근이와 친구
for (int j = 1; j <= n; j++) {
if (map[i][j]) { //친구의 친구
visited[j] = true; //방문
}
}
}
}
//초대 인원 계산
for (int i = 2; i <= n; i++) {
if (visited[i]) {
ans++;
}
}
}
int main() {
cin >> n;
cin >> m;
while (m--) {
int a, b;
cin >> a >> b;
map[a][b] = 1;
map[b][a] = 1;
}
count();
cout << ans;
}
|
cs |
728x90
반응형