[BOJ]1012 - 유기농 배추

yoon_H·2022년 6월 30일
0

BOJ

목록 보기
32/83

1012

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;

int graph[101][101], edge;

int visited[101][101], n, cnt{0};

int xsize, ysize;

int dx[] = { 1, -1, 0,0 };
int dy[] = { 0,0,1,-1 };


void dfs(int x, int y)
{
	visited[x][y] = 1;

	for (int i = 0; i < 4; i++)
	{
		int nx = x + dx[i];
		int ny = y + dy[i];

		if (nx < 0 || nx >= xsize || ny < 0 || ny >= ysize) continue;
		if (graph[nx][ny] && !visited[nx][ny])
		{
			dfs(nx,ny);
		}
	}


}

void reset(int x, int y)
{
	for (int i = 0; i < x; i++)
	{
		for (int j = 0; j < y; j++)
		{
			graph[i][j] = 0;
			visited[i][j] = 0;
		}
			
	}
}

int main() {
	int test{ 0 };

	cin >> test;

	for (int i = 0; i < test; i++)
	{
		scanf("%d %d %d", &xsize, &ysize, &edge);

		reset(xsize, ysize);

		for (int j = 0; j < edge; j++)
		{
			int num1, num2;

			scanf("%d %d", &num1, &num2);

			graph[num1][num2] = 1;
		}

		int cnt{ 0 };

		for (int j = 0; j < xsize; j++)
		{
			for (int k = 0; k < ysize; k++)
			{
				if (graph[j][k] && !visited[j][k])
				{
					cnt++;
					dfs(j,k);
				}
			}
		}

		printf("%d\n", cnt);
	}
}

범위 이슈가 있었어요~

0개의 댓글