안전지대

seheeee_97·2023년 11월 27일

회고팀

목록 보기
21/41



class Solution {
    public int solution(int[][] board) {
        int answer = 0;
        int n = board.length;
        int [][] newBoard =  new int [n][n];	//새로운 보드에 지뢰와 위험지역 표시
        
        for(int i=0; i<n; i++){          //행
            for(int j=0; j<n; j++){      //열
                if(board[i][j] == 1){
                    newBoard[i][j] = 1;							//지뢰 위치
                    if (i > 0) newBoard[i - 1][j] = 1;			//위
                    if (i < n - 1) newBoard[i + 1][j] = 1;		//아래
                    if (j < n - 1) newBoard[i][j + 1] = 1;		//오른쪽
                    if (j > 0) newBoard[i][j - 1] = 1;			//왼쪽
                    if (i > 0 && j > 0) newBoard[i - 1][j - 1] = 1;			//왼쪽 위 대각선
                    if (i < n - 1 && j > 0) newBoard[i + 1][j - 1] = 1;		//왼쪽 아래 대각선
                    if (i > 0 && j < n - 1) newBoard[i - 1][j + 1] = 1;		//오른쪽 위 대각선
                    if (i < n - 1 && j < n - 1) newBoard[i + 1][j + 1] = 1; //오른쪽 아래 대각선
                }
            }
        }
        
        //새로운 보드에서 안전한 지역 count
        for(int i=0; i<n; i++){          //행
            for(int j=0; j<n; j++){      //열
                if(newBoard[i][j] == 0){
                    answer++;
                }
            }
        }
        
        return answer;
    }
}






https://school.programmers.co.kr/learn/courses/30/lessons/120866

0개의 댓글