보드 카운트의 전함

4287 단어 leetcodepython
각 셀이 전함 'X' 또는 비어 있는 '.'인 m x n 행렬 보드가 주어지면 탑승한 전함의 수를 반환합니다.

전함은 배에 수평 또는 수직으로만 배치할 수 있습니다. 즉, 1 x k(1행, k열) 또는 k x 1(k행, 1열)의 모양으로만 만들 수 있습니다. 여기서 k는 어떤 크기도 될 수 있습니다. 두 전함 사이에 최소 하나의 수평 또는 수직 셀이 분리됩니다(즉, 인접한 전함이 없음).

var countBattleships = function(board) {

    if (board === null || board.length === 0 || board[0].length == 0 ) 
        return 0;

    let res = 0;

    const m = board.length;
    const n = board[0].length;

    for(let i = 0; i < m; i++) {
        for (let j = 0; j < n; j++) {
            if (board[i][j] === '.' 
                || 
                    (i > 0 && board[i - 1][j] === 'X') 
                || 
                    (j > 0 && board[i][j - 1] === 'X')
               ) 
                continue;
            res++;
        }
    }

    return res;
};



좋은 웹페이지 즐겨찾기