ALGORITHM
백준 1012 유기농 배추
girin_dev
2023. 1. 3. 19:48
728x90
반응형
https://www.acmicpc.net/problem/1012
1012번: 유기농 배추
차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에
www.acmicpc.net
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class 백준1012유기농배추 {
static int[][] baecho;
static int M;
static int N;
static int K;
static int[] dx = {-1, 1, 0, 0};
static int[] dy = {0, 0, -1, 1};
static boolean[][] visit;
static int count;
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int T = Integer.parseInt(br.readLine());
for (int i = 0; i < T; i++) {
count=0;
StringTokenizer st = new StringTokenizer(br.readLine());
M = Integer.parseInt(st.nextToken());
N = Integer.parseInt(st.nextToken());
K = Integer.parseInt(st.nextToken());
baecho = new int[M][N];
visit = new boolean[M][N];
for (int j = 0; j < K; j++) {
StringTokenizer tt = new StringTokenizer(br.readLine());
int a = Integer.parseInt(tt.nextToken());
int b = Integer.parseInt(tt.nextToken());
baecho[a][b] = 1;
}
for (int x = 0; x < M; x++) {
for (int y = 0; y < N; y++) {
if (baecho[x][y] == 1 && !visit[x][y]) {
dfs_baechu(x,y);
count++;
}
}
}
System.out.println(count);
}
}
static void dfs_baechu(int x, int y){
visit[x][y] = true;
for (int i=0; i<4; i++) {
int xx = dx[i]+x;
int yy = dy[i]+y;
if (xx>=0 && yy>=0 && xx <M && yy<N && !visit[xx][yy] && baecho[xx][yy] ==1) {
dfs_baechu(xx,yy);
}
}
}
}
320x100
반응형