acmicpc
[BAEKJOON] 1012. 유기농 배추
코드와이
2021. 3. 1. 18:12
문제링크
1012번: 유기농 배추
차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에
www.acmicpc.net
package acmicpc.Silver2;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class 유기농_배추 {
static int[][] arr;
static int n, m;
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int T = Integer.parseInt(br.readLine());
for(int tc = 1 ; tc <= T ; tc++) {
st = new StringTokenizer(br.readLine());
n = Integer.parseInt(st.nextToken());
m = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken());
arr = new int[n][m];
for(int i = 0 ; i < k ; i++) {
st = new StringTokenizer(br.readLine());
arr[Integer.parseInt(st.nextToken())][Integer.parseInt(st.nextToken())] = 1;
}
int ans = 0;
for(int i = 0 ; i < n ; i++) {
for(int j = 0 ; j < m ; j++) {
if(arr[i][j] == 1) {
ans += 1;
func(i,j);
}
}
}
System.out.println(ans);
}
}
static int[] dr = {-1, 1, 0, 0};
static int[] dc = {0, 0, 1, -1};
public static void func(int r, int c) {
arr[r][c] = 0;
for(int i = 0 ; i < 4 ; i++) {
int nr = r + dr[i];
int nc = c + dc[i];
if(nr > n - 1|| nc > m - 1 || nr < 0 || nc < 0) continue;
if(arr[nr][nc] == 1) func(nr, nc);
}
return;
}
}