: 이번 문제에서 주의해야 할 것은 좌표를 (0,1) (1,3) 과 같이 주는데 가로&세로의 범위를 잘 생각해야 한다.
지역을 나타내는 area 와 방문 여부를 확인하는 visit 배열을 먼저 생성해주고 배추의 위치는 area 에 값을 1로 설정해준다.
static boolean[][] visit;
static int T,M,N,K;
static int[][] area;
static int[][] dir = {{1,0},{-1,0},{0,1},{0,-1}};
static void input()
{
M = scan.nextInt(); // 가로길이
N = scan.nextInt(); // 세로길이
K = scan.nextInt(); // 배추개수
area = new int[N][M];
visit = new boolean[N][M];
// 배추심기
while(K-- >0)
{
int y = scan.nextInt();
int x = scan.nextInt();
area[x][y] = 1;
}
}
순회
: 지역을 순회하면서 배추의 위치에서 dfs 를 탐색해서 이어진 부분을 모두 visit = true 로 만들어주고, 한번의 순회에 카운트 값을 더해주면 된다.
더한 값을 sb 에 append 해주고 테스트 케이스가 종료된 후, sb 값을 출력해주면 된다.