C++/programmers 코딩테스트(level 0) C++

C++ 안전지대

CE : 하랑 2024. 8. 21. 13:23

 

 


 

#include <string>
#include <vector>

using namespace std;

int solution(vector<vector<int>> board) {
    int BoomTable[8][2]={{-1,0},{-1,-1},{0,-1},{1,-1},{1,0},{-1,1},{0,1},{1,1}};
    int answer = 0;
    
    for(int i=0;i<board.size();i++)
    {
        for(int j=0;j<board[i].size();j++)
        {
            if(board[i][j]==1)
            {
                
                for(int k=0;k<8;k++)
                {
                    int x=j+BoomTable[k][0];
                    int y=i+BoomTable[k][1];
                    
                    if(x>-1 && x<board[0].size() && y>-1 && y<board.size())
                    {
                        if(board[y][x]!=1)
                        {
                            board[y][x]=2;
                        }
                    }
                }
                
            }
        }
    }
    
   for(int i=0;i<board.size();i++)
    {
        for(int j=0;j<board[i].size();j++)
        {
            if(0==board[i][j])
            {
                ++answer;
            }
        }
   }
 
    return answer;
}