top of page

소스 코드 제출

공개·회원 50명

250706


#include <stdio.h>

int n;

int k[2][700]= {};

int s=0, e=0;

int px, py;

int arr[27][27]= {};


void push (int x, int y)

{

k[0][e]=x;

k[1][e]=y;

arr[x][y]=0;

e++;

}


int pop()

{

s++;

px = k[0][s-1];

py = k[1][s-1];

}

int main()

{

int sum=0;


scanf("%d", &n);

for (int i=1 ; i<=n ; i++)

{

for (int j=1 ; j<=n ; j++)

{

scanf("%1d", &arr[i][j]);

}

}

for (int i=1 ; i<=n ; i++)

{

for (int j=1 ; j<=n ; j++)

{

if (arr[i][j]==1)

{

push(i, j);

//printf("%d %d\n",i,j);

sum++;

while (s!=e)

{

pop();

// arr[px][py] 근처에서 방문x 연결o 모두 push

if(arr[px+1][py]==1)

{

push(px+1, py);

arr[px+1][py]=0;

}

if(arr[px-1][py]==1)

{

push(px-1, py);

arr[px-1][py]=0;

}

if(arr[px][py+1]==1)

{

push(px, py+1);

arr[px][py+1]=0;

}

if(arr[px][py-1]==1)

{

push(px, py-1);

arr[px][py-1]=0;

}

}

}

}

}

printf("%d", sum);

}


3회 조회
주소 : 경기도 용인시 광교중앙로 302 블루 스퀘어 602호
연락처 : 031) 216 - 1546 ,     031) 215 - 1546
사업자등록번호 : 465-92-00916
​학원 등록 제 4603호
bottom of page