반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
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
Archives
Today
Total
관리 메뉴

코딩하기 좋은날

백준 1012 유기농 배추 본문

백준(Baekjoon) 문제

백준 1012 유기농 배추

huiung 2019. 2. 10. 00:21
반응형

https://www.acmicpc.net/problem/1012

문제와 채점은 위 사이트에서 확인 하실 수 있습니다

 

이 문제는 배추밭에 배추가 심어져있는 좌표를 입력받은뒤 배추가 심어진 부분의 영역의 수를 구하는 문제입니다. 서로 인접해있는 영역은 하나의 배추벌레로 모두 보호가 되므로 main함수에서 dfs를 호출하는 횟수가 곧 필요한 배추벌레의 숫자입니다. 특별함은 없는 문제입니다.

 

다음은 코드입니다.

 

 #include <iostream>

using namespace std;

int cabbage[51][51];
int nextx[4] = {1, 0, -1, 0};
int nexty[4] = {0, 1, 0, -1};
int M,N; 

void dfs(int a, int b) {
	cabbage[a][b] = 0;
	
	for(int i = 0; i < 4; i++) {
		int x = a + nextx[i];
		int y = b + nexty[i];
		if(x < 0 || x >= N || y < 0 || y >= M)
			continue;
		
		if(cabbage[x][y])
			dfs(x, y);
	}
		
}

int main(void) {
	ios_base::sync_with_stdio(false); cin.tie(NULL);
	int T,K;
	int worm;
	cin >> T;
	while(T--) {
		worm = 0;
		cin >> M >> N >> K;
		int x,y;
		while(K--) {
		cin >> y >> x;
		cabbage[x][y] = 1;
		}
		for(int i = 0; i < N; i++)
			for(int j = 0; j < M; j++) {
				if(cabbage[i][j]) {
					dfs(i, j);
					worm++;
				}
	
		}	
	cout<<worm<<'\n';
	}
	return 0;
}

 

 

반응형

'백준(Baekjoon) 문제' 카테고리의 다른 글

백준 2178 미로 탐색  (0) 2019.02.10
백준 5014 스타트링크  (0) 2019.02.10
백준 2583 영역 구하기  (0) 2019.02.09
백준 1525 퍼즐  (0) 2019.02.09
백준 1987 알파벳  (0) 2019.02.08