top of page

소스 코드 제출

공개·회원 77명

//4381 토마토

#include <stdio.h>


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

int queue[2][1001]={};

int back=-1, front=-1;

int i,px,py,sum=0;


int push(int m, int n)

{

back++;

queue[1][back]=m;

queue[2][back]=n;

arr[m][n]=1;

}

void pop()

{

front++;

px=queue[1][front];

py=queue[2][front];

}


void bfs()

{

while(back!=front)

{

pop();

printf("%d %d\n",px,py);//실험

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

{

push(px,py+1);

}

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

{

push(px+1,py);

}

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

{

push(px,py-1);

}

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

{

push(px-1,py);

}

}

}


int main()

{

int j,a,b;


scanf("%d %d",&a,&b);

for(i=1 ; i<=b ; i++)

{

for(j=1 ; j<=a ; j++)

{

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

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

{

push(i,j);

}

}

}

bfs();

printf("%d",sum);

}

/*

#include <stdio.h>


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

int temp=0,px,py;

int queue[4][51]={};

int back=-1,front=-1;


int push(int m,int n)

{

back++;

queue[1][back]=m;

queue[2][back]=n;

arr[m][n]=0;

temp++;

}

void pop()

{

front++;

px=queue[1][front];

py=queue[2][front];

}


void bfs(int x, int y, int z)

{

push(x,y);

arr[x][y]=0;


while(front!=back)

{

pop();

//printf("%d %d\n",px,py);

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

{

push(px,py+1);

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

}

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

{

push(px+1,py);

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

}

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

{

push(px,py-1);

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

}

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

{

push(px-1,py);

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

}

}

}



int main()

{

int i,j,sum=0;


for(i=1 ; i<=7 ; i++)

{

for(j=1 ; j<=7 ; j++)

{

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

}

}

for(i=1 ; i<=7 ; i++)

{

for(j=1 ; j<=7 ; j++)

{

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

continue;

// printf("bfs start\n");

bfs(i,j,arr[i][j]);

if(temp>=3)

{

sum++;

}

temp=0;

// printf("\nbfs end---\n");

}

}

printf("%d",sum);

return 0;

}

*/

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