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;
}
}
'알고리즘' 카테고리의 다른 글
프로그래머스 등수 매기기 (JAVA) (0) | 2022.11.01 |
---|---|
프로그래머스 저주의 숫자 3 (JAVA) (0) | 2022.10.31 |
프로그래머스 겹치는 선분의 길이 (JAVA) (0) | 2022.10.29 |
프로그래머스 캐릭터의 좌표(JAVA) (0) | 2022.10.28 |
프로그래머스 옹알이2 (JAVA) (0) | 2022.10.27 |