#include<stdio.h> 영역구하기
int arr[101][101]={};
int s[101]={};
int n,m,e=0,q=0;
void dfs(int i, int j)
{
if(arr[i][j]==1||i<0||j<0||i>n||j>m)
{
return;
}
q++;
dfs(i+1,j);
dfs(i-1,j);
dfs(i,j+1);
dfs(i,j-1);
arr[i][j]=1;
}
int main()
{
int f,a,b,c,d;
scanf("%d %d %d",&n,&m,&f);
for(int i=0;i<f;i++)
{
scanf("%d %d %d %d",&a,&b,&c,&d);
for(int j=b;j<d;j++)
{
for(int k=a;k<c;k++)
{
arr[j][k]=1;
}
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
if(arr[i][j]==0)
{
dfs(i,j);
s[e]=q;
e++;
q=0;
}
}
}
for(int i=0;i<f;i++)
{
printf("%d",s[i]);
}
printf("%d",e);
}
----
#include <stdio.h> 안전영역
int arr[101][101]={};
int n;
void dfs(int a,int b)
{
if(arr[a-1][b]>n)
{
dfs(a-1,b);
}
if(arr[a+1][b]>n)
{
dfs(a+1,b);
}
if(arr[a][b-1]>n)
{
dfs(a,b-1);
}
if(arr[a][b+1]>n)
{
dfs(a,b+1);
}
arr[a][b]=0;
}
int main()
{
int c=0;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
scanf("%d",&arr[i][j]);
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(arr[i][j]>n)
{
dfs(i,j);
c++;
}
}
}
printf("%d",c);
}
---
#include <stdio.h> 오목
int arr[20][20]={};
int m=0,g=0,e=0,f=0;
void dfs(int i, int j,int d)
{
if(arr[i-1][j]&&d==0||arr[i-1][j]&&d==1)
{
dfs(i-1,j,1);
}
if(arr[i-1][j+1]&&d==0||arr[i-1][j]&&d==2)
{
dfs(i-1,j+1,2);
}
if(arr[i][j+1]&&d==0||arr[i][j+1]&&d==3)
{
dfs(i,j+1,3);
}
if(arr[i+1][j+1]&&d==0||arr[i+1][j+1]&&d==4)
{
dfs(i+1,j+1,4);
}
if(arr[i+1][j]&&d==0||arr[i+1][j]&&d==5)
{
dfs(i+1,j,5);
}
if(arr[i+1][j-1]&&d==0||arr[i+1][j]&&d==6)
{
dfs(i+1,j-1,6);
}
if(arr[i][j-1]&&d==0||arr[i][j-1]&&d==7)
{
dfs(i,j-1,7);
}
if(arr[i-1][j-1]&&d==0||arr[i+1][j-1]&&d==8)
{
dfs(i-1,j-1,8);
}
m++;
if(m==5)
{
g=d;
if(d==1)
{
e=i;
f=j;
}
else if(d==5)
{
e=i-4;
f=j;
}
else if(d==2)
{
e=i+4;
f=j-4;
}
else if(d==3)
{
e=i;
f=j-4;
}
else if(d==4)
{
e=i-4;
f=j-4;
}
else if(d==6||d==7||d==8)
{
e=i;
f=j;
}
}
}
int main()
{
for(int i=0;i<19;i++)
{
for(int j=0;j<19;j++)
{
scanf("%d",&arr[i][j]);
}
}
for(int i=0;i<19;i++)
{
for(int j=0;j<19;j++)
{
if(arr[i][j]==2||arr[i][j]==1)
{
dfs(i,j,0);
if(m==5)
{
printf("%d",m);
break;
}
m=0;
}
}
}
printf("\n%d %d",e,f);
}