public class counting {
static int alreadyCount =2; // alreadyCount : 이미 count 한 이미지 픽셀
static int size =8; // image 의 크기는 size X size
static int cnt =0; // 카운트 수 ( 정답 )
public static void main(String[] args) {
int[][] image = { // 0 은 빈칸, 1은 pixel
{1,0,0,0,0,0,1,0},
{0,1,1,0,0,0,0,0},
{1,1,0,0,0,1,0,0},
{0,0,0,0,1,0,1,0},
{0,0,0,0,0,1,0,0},
{0,1,0,0,0,1,0,1},
{0,1,0,0,0,1,0,1},
{1,1,1,0,1,0,1,1},
};
System.out.println(findsize(image,7,7));
}
public static int findsize(int[][] image,int x,int y) {
if(x<0 || y<0|| x>=size || y>=size) return cnt;
else if(image[x][y]==0) return cnt; // 빈칸이라면 그냥 size =0
else if(image[x][y]==1) {
cnt++;
image[x][y]=alreadyCount; // 카운트했으므로 alreadyCount로 바꾼다.
for(int i=x-1;i<=x+1;i++)//-1 부터 1까지
{
for(int j=y-1;j<=y+1;j++) //5부터 7까지
{
cnt = findsize(image, i, j);
}
}
}
return cnt;
}
}