https://www.acmicpc.net/problem/5567
#include <cstdio>using namespace std;int n, m, x, y;int map[501][501] = {0, };bool visit[501] = {0, };int main(){int result = 0;scanf("%d %d", &n, &m);for (int i = 0; i < m; ++i){scanf("%d %d", &x, &y);map[x][y] = map[y][x] = 1;}for (int i = 2; i <= n; ++i) {if (map[1][i] == 1 || map[i][1]) { // 1이랑 친구인 사람for (int j = 1; j <= n; ++j) {if (map[i][j] == 1 || map[j][i]) { // 1이랑 친구인 사람의 친구(즉, 친구의 친구)visit[i] = visit[j] = true;}}}}for (int i = 2; i <= n ; ++i) {if (visit[i]) {result++;}}printf("%d ", result);return 0;}
'알고리즘 풀이' 카테고리의 다른 글
백준 1259번 팰린드롬 수 (0) | 2018.04.08 |
---|---|
백준 7576번 토마토 (0) | 2018.04.03 |
백준 6359번 만취한 상범 (0) | 2018.02.07 |
백준 2302번 극장 좌석 (0) | 2018.02.02 |
백준 9084번 동전 (0) | 2018.01.24 |