#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)
조회 수 228 추천 수 0 댓글 0