public int solution(int[][] board) {
// 전체 순회 중 지뢰(1)은 건너 뜀
for (int i = 0; i < board.length; i++) {
for (int j = 0; j < board.length; j++) {
// 팔방 확인
for (int k = i - 1; k < i + 2; k++) { // 이전행, 현재행, 다음행
for (int l = j - 1; l < j + 2; l++) { // 이전열, 현재열, 다음열
if (k >= 0 && k < board.length && l >= 0 && l < board.length && board[k][l] != 1) {
board[i][j]--; // 지뢰가 있으면 -1
}
}
}
}
}
int answer = 0;
for (int[] col : board) {
for (int element : col) {
if (element == 0) answer++; // 안전지대 카운트
}
}
return answer;
}
주어진 2차원 배열에서 지뢰와 지뢰와 인접한 8방향을 제외하고 안전한 지역을 세는 문제
728x90
'코딩테스트 > Java' 카테고리의 다른 글
[CodeTree]조건에 부합하는 수 (0) | 2024.08.06 |
---|---|
[Programmers] OX퀴즈 (0) | 2024.04.23 |
[Programmers] 겹치는 선분의 길이 (0) | 2024.04.23 |
[Programmers] 평행 (0) | 2024.04.23 |
[Programmers] 영어끝말잇기 (0) | 2023.07.25 |