728x90
https://school.programmers.co.kr/learn/courses/30/lessons/120866
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
728x90
메모리: 87.6 MB, 시간: 0.10 ms
사용 알고리즘: 그래프 탐색
class Solution {
public int solution(int[][] board) {
int answer = (int) Math.pow(board.length, 2);
// 위험 구역
boolean[][] danger = new boolean[board.length][board.length];
// 현위치 + 8방탐색
int[] dx = {-1, -1, -1, 0, 0, 0, 1, 1, 1};
int[] dy = {-1, 0, 1, -1, 0, 1, -1, 0, 1};
int nx, ny;
for(int i = 0; i < board.length; i++) {
for(int j = 0; j < board.length; j++) {
if(board[i][j] == 1) { // 지뢰 발견
for(int k = 0; k < 9; k++) { // 현위치 + 8방 탐색
nx = i + dx[k];
ny = j + dy[k];
if(nx >= 0 && nx < board.length
&& ny >= 0 && ny < board.length) { // board 범위를 넘어가지 않고
if(!danger[nx][ny]) { // 처음으로 위험 구역으로 선정됐다면
danger[nx][ny] = true;
answer--;
}
}
}
}
}
}
return answer;
}
}
728x90
'Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스, 181835] 조건에 맞게 수열 변환하기 3 (java) (0) | 2025.04.07 |
---|---|
[프로그래머스, 181928] 이어 붙인 수 (java) (0) | 2025.04.07 |
[프로그래머스, 181849] 문자열 정수의 합 (java) (0) | 2025.04.03 |
[프로그래머스, 181851] 전국 대회 선발 고사 (java) (0) | 2025.04.03 |
[프로그래머스, 181852] 뒤에서 5등 위로 (java) (0) | 2025.04.03 |