#include <stdio.h>
char room[701][701];
int search(int n, int m); //지은이의 위치 찾기
int re(int n, int m, int x, int y); //지은이가 갈 수 있는 검정색 타일 표시
int count(int n, int m); //갈 수 있는 검정색 타일의 개수
int main(void)
{
int n, m, i, j, c;
scanf(" %d %d", &n, &m);
for(i=0; i<m; i++)
{
scanf("%s", room[i]);
}
search(n, m);
c=count(n, m);
printf("%d", c);
return 0;
}
int search(int n, int m)
{
int i, j;
for(i=0; i<m; i++)
{
for(j=0; j<n; j++)
{
if(room[i][j]=='@')
{
re(n, m, i, j);
return 0;
}
}
}
}
int re(int n, int m, int x, int y)
{
if(room[x+1][y]=='.')
{
room[x+1][y]='@';
re(n, m, x+1, y);
}
if(room[x-1][y]=='.')
{
room[x-1][y]='@';
re(n, m, x-1, y);
}
if(room[x][y+1]=='.')
{
room[x][y+1]='@';
re(n, m, x, y+1);
}
if(room[x][y-1]=='.')
{
room[x][y-1]='@';
re(n, m, x, y-1);
}
return 0;
}
int count(int n, int m)
{
int i, j, c=0;
for(i=0; i<m; i++)
{
for(j=0; j<n; j++)
{
if(room[i][j]=='@')
{
c++;
}
}
}
return c;
}
2018.07.14 12:16
정올 - 문제은행 - Red and Black(1154)
조회 수 268 추천 수 0 댓글 0