쉬운문제부터 공략하자 ~! ㅋ
아무래도 UVA중에 가장 쉬운 문제라고 생각한다. ㅎ
초보인 나에게 이러한 문제는 정말 반갑기 그지없다 ~~ ㅎ
출력때문에 황당했지만 ㅠ

#include <stdio.h>

int x[8]={-1,0,1,1,1,0,-1,-1};

int y[8]={1,1,1,0,-1,-1,-1,0};

int n,m;

char mine[100][100];

int minesweeper(int mx,int my){

 int i,cnt=0;

 for(i=0;i<8;i++){

  if(mx+x[i] > -1 && mx+x[i] < n && my+y[i] > -1 && my+y[i] < m){

   if(mine[mx+x[i]][my+y[i]]=='*')

    cnt++;

  }

 }

 return cnt;

}

int main(){

 int i,j,minecnt,programcnt=0;

 char buffer;

 n=m=1;

 while(n!=0 && m!=0){

  scanf("%d %d",&n,&m);

  scanf("%c",&buffer);

  if(n==0 && m==0)

   break;

  for(i=0;i<n;i++){

   for(j=0;j<m;j++){

    scanf("%c",&mine[i][j]);

   }

   scanf("%c",&buffer);

  }

  if(programcnt==0)

   printf("Field #%d:\n",++programcnt);

  else

   printf("\nField #%d:\n",++programcnt);

  for(i=0;i<n;i++){

   for(j=0;j<m;j++){

    if(mine[i][j]=='*')

     printf("%c",mine[i][j]);

    else{

     minecnt=minesweeper(i,j);

     printf("%d",minecnt);

    }

   }

   printf("\n");

  }

 }

 return 0;

}

+ Recent posts