top of page

소스 코드 제출

공개·회원 50명

250425

/*

#include <stdio.h>

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

int sum=0, s=0;

void dfs(int k, int p)

{

arr[k][p]=0;

if(p+1<=7&&arr[k][p+1]==arr[k][p])

{

sum+=1;

dfs(k, p+1);

}

if(p-1>0&&arr[k][p-1]==arr[k][p])

{

sum+=1;

dfs(k, p-1);

}

if(k+1<=7&&arr[k+1][p]==arr[k][p])

{

sum+=1;

dfs(k+1, p);

}

if(k-1>0&&arr[k-1][p]==arr[k][p])

{

sum+=1;

dfs(k-1, p);

}

else

{

if(sum>=3)

{


sum=0;

s+=1;

}

else

{

sum=0;

}

}

}


int main()

{

int i, j;

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++)

{

dfs(i, j);

}

}

// printf("%d", sum);

return 0;

}

*/


#include<stdio.h>

int arr[50][50]={}, count[500]={};

int n, sum=0;

void dfs(int k, int p)

{

arr[k][p]=0;

count[sum]++;

if(p+1<=n&&arr[k][p+1]==1)

{

dfs(k, p+1);

}

if(p-1>0&&arr[k][p-1]==1)

{


dfs(k, p-1);

}

if(k+1<=n&&arr[k+1][p]==1)

{


dfs(k+1, p);

}

if(k-1>0&&arr[k-1][p]==1)

{


dfs(k-1, p);

}


}

int main()

{

int i, j;

scanf("%d", &n);

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

{

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

{

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

}

}

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

{

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

{

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

{

dfs(i, j);

sum++;

}

}

}

printf("%d", sum);

for(i=0;i<sum;i++)

{

printf("\n%d", count[sum]);

}

return 0;

}

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