๐ŸŒ  ๋ฌธ์ œ

๋‹ค์Œ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์ง€๋ขฐ๊ฐ€ ์žˆ๋Š” ์ง€์—ญ๊ณผ ์ง€๋ขฐ์— ์ธ์ ‘ํ•œ ์œ„, ์•„๋ž˜, ์ขŒ, ์šฐ ๋Œ€๊ฐ์„  ์นธ์„ ๋ชจ๋‘ ์œ„ํ—˜์ง€์—ญ์œผ๋กœ ๋ถ„๋ฅ˜ํ•ฉ๋‹ˆ๋‹ค.


์ง€๋ขฐ๋Š” 2์ฐจ์› ๋ฐฐ์—ด board์— 1๋กœ ํ‘œ์‹œ๋˜์–ด ์žˆ๊ณ  board์—๋Š” ์ง€๋ขฐ๊ฐ€ ๋งค์„ค ๋œ ์ง€์—ญ 1๊ณผ, ์ง€๋ขฐ๊ฐ€ ์—†๋Š” ์ง€์—ญ 0๋งŒ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
์ง€๋ขฐ๊ฐ€ ๋งค์„ค๋œ ์ง€์—ญ์˜ ์ง€๋„ board๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์•ˆ์ „ํ•œ ์ง€์—ญ์˜ ์นธ ์ˆ˜๋ฅผ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

๐ŸŒ  ์ œํ•œ์‚ฌํ•ญ

  • ์ œํ•œ์‚ฌํ•ญ
  • board๋Š” n * n ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
  • 1 ≤ n ≤ 100
  • ์ง€๋ขฐ๋Š” 1๋กœ ํ‘œ์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • board์—๋Š” ์ง€๋ขฐ๊ฐ€ ์žˆ๋Š” ์ง€์—ญ 1๊ณผ ์ง€๋ขฐ๊ฐ€ ์—†๋Š” ์ง€์—ญ 0๋งŒ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

๐ŸŒ  ์ž…์ถœ๋ ฅ ์˜ˆ

board result
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 1, 0, 0], [0, 0, 0, 0, 0]] 16
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 1, 1, 0], [0, 0, 0, 0, 0]] 13
[[1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1]] 0

๐ŸŒ  ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • (3, 2)์— ์ง€๋ขฐ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์ง€๋ขฐ๊ฐ€ ์žˆ๋Š” ์ง€์—ญ๊ณผ ์ง€๋ขฐ์™€ ์ธ์ ‘ํ•œ ์œ„, ์•„๋ž˜, ์ขŒ, ์šฐ, ๋Œ€๊ฐ์„  ์ด 8์นธ์€ ์œ„ํ—˜์ง€์—ญ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 16์„ returnํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • (3, 2), (3, 3)์— ์ง€๋ขฐ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์ง€๋ขฐ๊ฐ€ ์žˆ๋Š” ์ง€์—ญ๊ณผ ์ง€๋ขฐ์™€ ์ธ์ ‘ํ•œ ์œ„, ์•„๋ž˜, ์ขŒ, ์šฐ, ๋Œ€๊ฐ์„ ์€ ์œ„ํ—˜์ง€์—ญ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์œ„ํ—˜์ง€์—ญ์„ ์ œ์™ธํ•œ ์นธ ์ˆ˜ 13์„ returnํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #3

  • ๋ชจ๋“  ์ง€์—ญ์— ์ง€๋ขฐ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์•ˆ์ „์ง€์—ญ์€ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 0์„ returnํ•ฉ๋‹ˆ๋‹ค.

๐Ÿงž ํ’€์ด

function solution(board) {
    // ์ •๋‹ต์„ ๋‹ด์„ ๋ณ€์ˆ˜ ์„ ์–ธ
    let answer = 0;
    // 1์ด ์žˆ๋Š” ์ขŒํ‘œ ๊ธฐ์ค€์œผ๋กœ ์œ„ํ—˜์ง€์—ญ์„ -1๋กœ ๋ณ€ํ™˜ํ•จ
    for (let i = 0; i < board.length; i++) {
        for (let j = 0; j < board.length; j++) {
            if (board[i][j] === 1) {
                for (let k = -1; k <= 1; k++) {
                    for (let l = -1; l<= 1; l++) {
                        if (board[i+k] && board[j+l] && board[i+k][j+l] === 0) {
                            board[i+k][j+l] = -1;
                        }
                    }
                }
            }
        }
    }
    // ๋‹ค์‹œ 2์ฐจ์› ๋ฐฐ์—ด์„ ํƒ์ƒ‰ํ•˜๋ฉด์„œ 0์˜ ๊ฐฏ์ˆ˜๋ฅผ ์ฐพ์Œ
    for (let i = 0; i < board.length; i++) {
        for (let j = 0; j < board.length; j++) {
            if (board[i][j] === 0) {
                answer += 1;
            }
        }
    }
    
    return answer;
}

+ Recent posts