import java.util.Scanner; public class Main { static int dx[]= {-1,0,1,0}; static int dy[]= {0,1,0,-1}; static int sero; static int garo; static int arr[][]; static boolean visit[][]; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int test_case= sc.nextInt(); for(int t=0;t<test_case;t++) { garo = sc.nextInt(); sero = sc.nextInt(); int score = sc.nextInt(); int result=0; arr= new int[sero][garo]; visit=new boolean[sero][garo]; for(int i=0;i<score;i++) { int garoy= sc.nextInt(); int serox= sc.nextInt(); arr[serox][garoy]=1; } for(int i=0;i<sero;i++) { for(int j=0;j<garo;j++) { if(arr[i][j]==1) { result++; DFS(i,j); } } } //출력 System.out.println(result); } } private static void DFS(int x, int y) { //종료조건 for(int i=0;i<4;i++) { int rx= x+dx[i]; int ry = y+dy[i]; if(rx<0||ry<0||rx>=sero||ry>=garo) { continue; }if(arr[rx][ry]==1&&visit[rx][ry]==false) { visit[rx][ry]=true; arr[rx][ry]=0; DFS(rx,ry); } } return; } }
'코딩테스트(백준)' 카테고리의 다른 글
[백준] 10026 : 적록색약 -JAVA(자바) - 사좋배 공유 (0) | 2020.03.03 |
---|---|
[백준] 2309 : 일곱 난쟁이 - JAVA(자바) - 사좋배 공유 (0) | 2020.03.03 |
[백준] 1987 : 알파벳 - JAVA(자바) - 사좋배 공유 (0) | 2020.03.03 |
[백준] 2178 : 미로탐색 -JAVA(자바) - 사좋배 공유 (0) | 2020.03.03 |
[백준] 2638 : 치즈 -JAVA(자바) - 사좋배 공유 (0) | 2020.02.27 |