알고리즘
프로그래머스 안전지대 (JAVA)
박카스마시며코딩
2022. 10. 30. 16:31
https://school.programmers.co.kr/learn/courses/30/lessons/120866
class Solution {
private static final int EMPTY = 0;
private static final int BOMB = 1;
private static final int[] DY = {-1,0,1,0,-1,1,1,-1};
private static final int[] DX = {0,1,0,-1,1,1,-1,-1};
public int solution(int[][] board) {
int answer = 0;
int size = board.length;
int[][] check = new int[size][size];
for(int i = 0 ; i < size ; i++){
for(int j = 0 ; j < size ; j++){
if(board[i][j] == BOMB){
checkBomb(i,j,check,size);
}
}
}
for(int i = 0 ; i < size ; i++){
for(int j = 0 ; j < size ; j++){
if(check[i][j] == EMPTY){
answer++;
}
}
}
return answer;
}
private void checkBomb(int y, int x, int[][] check, int size){
for(int i = 0 ; i < 8 ; i++){
int ny = y + DY[i];
int nx = x + DX[i];
if(ny >= 0 && ny < size && nx >= 0 && nx < size){
check[ny][nx] = BOMB;
}
}
check[y][x] = BOMB;
}
}