top of page

소스 코드 제출

공개·회원 50명

250502

/*

#include <stdio.h>

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

int n, sum=0;

int 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, d=0, temp;

int memo[100]= {};

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\n", sum);

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

{

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

{

if(count[j]>count[j+1])

{


temp=count[j];

count[j]=count[j+1];

count[j+1]=temp;

}

}

}

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

{

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

}

return 0;

}

*/


#include<stdio.h>

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

int sum=0;

void dfs(int k, int p)

{

arr[k][p]=0;

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 n, h, i, j;

scanf("%d", &n);

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

{

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

{

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

}

}

}

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

{

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

{

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

{

dfs(i, j);

sum++;

}

}

}

printf("%d", sum);

return 0;

}

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