본문 바로가기
코딩테스트/Java

[Programmers] 안전지대

by Coarti 2024. 4. 23.
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