문제출처: https://www.acmicpc.net/problem/5567


그래프구현문제입니다.


풀이

보기의 예제를 보면, 1과 연결되있는 노드중에서 그 노드와 연결되어있는 노드의 개수를 찾는 문제입니다.

사실 이것만 구현하면 끝입니다....설명은 소스코드로..


코드

#include<iostream>
using namespace std;
int map[501][501];
int check[501];
int n, m,a,b, cnt;
int main()
{
	cin >> n >> m;
	for (int i = 0; i < m; i++)
	{
		cin >> a >> b;
		map[a][b] = 1;
		map[b][a] = 1;
	}
	for (int i = 2; i <= n; i++)
	{
		//만약 1과연결되있으면
		if (map[1][i])
		{
			//방문처리
			check[i] = 1;
			for (int j = 2; j <= n; j++)
			{
				//그 노드에서 연결된 노드를 방문처리
				if (map[i][j] == 1)
					check[j] = 1;
			}
		}
	}
	for (int i = 2; i <= n; i++)
	{
		//1되어있는 노드=1과연결되있는 노드와 연결되어있는 노드 수
		if (check[i] == 1)
			cnt++;
	}
	cout << cnt << endl;
}


결과

'문제풀이(BOJ) > 시뮬레이션(구현)' 카테고리의 다른 글

[백준 5533] 유니크  (0) 2020.01.19
[백준 9517] 아이 러브 크로아티아  (0) 2020.01.19
[백준 1120] 문자열  (0) 2020.01.09
[백준 2526] 싸이클  (0) 2020.01.09
[백준 11507] 카드셋트  (0) 2020.01.08

+ Recent posts