-
프로그래머스 - 안전지대알고리즘 2024. 4. 5. 20:54
class Solution { public int solution(int[][] board) { int answer = 0; for(int i = 0; i < board.length; i++) { for(int j = 0; j < board.length; j++) { if(board[i][j] == 1) danger(board, i, j); } } for(int i = 0; i < board.length; i++) { for(int j = 0; j < board.length; j++) { if(board[i][j] == 0) answer++; } } return answer; } public void danger(int[][] board, int x, int y) { for(int i = -1; i <= 1; i++) { for(int j = -1; j <= 1; j++) { if(x + i >= 0 && x + i <= board.length - 1 && y + j >= 0 && y + j <= board.length - 1) { if(board[x + i][y + j] == 0) board[x + i][y + j] = 2; } } } } }
for문을 이용해 폭탄의 위치를 탐색하여, 위치에서 각 위험 지역을 체크합니다.
x, y 좌표의 -1 ~ 1 사이의 값이 배열 안에 위치해 있는지 체크 후 안전 지역이라면 위험 지역으로 바꾸어 줍니다.후에, 배열을 다시 탐색해 0의 갯수를 파악하여 반환합니다.
'알고리즘' 카테고리의 다른 글
프로그래머스 - 최소 직사각형 (0) 2024.04.12 프로그래머스 - 시저 암호 (0) 2024.04.11 프로그래머스 - 최빈값 구하기 (1) 2024.04.06 프로그래머스 - 겹치는 선분의 길이 (0) 2024.04.06 프로그래머스 - 다항식 더하기 (0) 2024.04.05