ํด๋น ๋ฌธ์ ๋ ๋งค์ฐ ๊ฐ๋จํ์ง๋ง, ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ๋ฉฐ ๋์ ์ง๊ฐ ๋ง์ด์๋ค,,, ๋ถ์กฑํ ์๊ณ ๋ฆฌ์ฆ ์ค๋ ฅ์ผ๋ก ์ต๋ํ ๋ณด๊ธฐ์ฝ๊ฒ ์ฃผ์์ ๋ฌ์๋ณด์์..
๋ฌธ์  ์์
ํ๋ ์ฆ4๋ธ๋ก
๋ธ๋ผ์ธ๋ ๊ณต์ฑ๋ฅผ ํต๊ณผํ ์ ์
 ์ฌ์ ๋ผ์ด์ธ์ ์ ๊ท ๊ฒ์ ๊ฐ๋ฐ ์
๋ฌด๋ฅผ ๋งก๊ฒ ๋์๋ค. ์ด๋ฒ์ ์ถ์ํ  ๊ฒ์ ์ ๋ชฉ์ "ํ๋ ์ฆ4๋ธ๋ก".
๊ฐ์ ๋ชจ์์ ์นด์นด์คํ๋ ์ฆ ๋ธ๋ก์ด 2ร2 ํํ๋ก 4๊ฐ๊ฐ ๋ถ์ด์์ ๊ฒฝ์ฐ ์ฌ๋ผ์ง๋ฉด์ ์ ์๋ฅผ ์ป๋ ๊ฒ์์ด๋ค.

๋ง์ฝ ํ์ด ์์ ๊ฐ์ด ์ฃผ์ด์ง ๊ฒฝ์ฐ, ๋ผ์ด์ธ์ด 2ร2๋ก ๋ฐฐ์น๋ 7๊ฐ ๋ธ๋ก๊ณผ ์ฝ์ด 2ร2๋ก ๋ฐฐ์น๋ 4๊ฐ ๋ธ๋ก์ด ์ง์์ง๋ค. ๊ฐ์ ๋ธ๋ก์ ์ฌ๋ฌ 2ร2์ ํฌํจ๋ ์ ์์ผ๋ฉฐ, ์ง์์ง๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ 2ร2 ๋ชจ์์ด ์ฌ๋ฌ ๊ฐ ์๋ค๋ฉด ํ๊บผ๋ฒ์ ์ง์์ง๋ค.

๋ธ๋ก์ด ์ง์์ง ํ์ ์์ ์๋ ๋ธ๋ก์ด ์๋๋ก ๋จ์ด์ ธ ๋น ๊ณต๊ฐ์ ์ฑ์ฐ๊ฒ ๋๋ค.

๋ง์ฝ ๋น ๊ณต๊ฐ์ ์ฑ์ด ํ์ ๋ค์ 2ร2 ํํ๋ก ๊ฐ์ ๋ชจ์์ ๋ธ๋ก์ด ๋ชจ์ด๋ฉด ๋ค์ ์ง์์ง๊ณ ๋จ์ด์ง๊ณ ๋ฅผ ๋ฐ๋ณตํ๊ฒ ๋๋ค.

์ ์ด๊ธฐ ๋ฐฐ์น๋ฅผ ๋ฌธ์๋ก ํ์ํ๋ฉด ์๋์ ๊ฐ๋ค.
TTTANT
RRFACC
RRRFCC
TRRRAA
TTMMMF
TMMTTJ
๊ฐ ๋ฌธ์๋ ๋ผ์ด์ธ(R), ๋ฌด์ง(M), ์ดํผ์น(A), ํ๋ก๋(F), ๋ค์ค(N), ํ๋ธ(T), ์ ์ด์ง(J), ์ฝ(C)์ ์๋ฏธํ๋ค
์ ๋ ฅ์ผ๋ก ๋ธ๋ก์ ์ฒซ ๋ฐฐ์น๊ฐ ์ฃผ์ด์ก์ ๋, ์ง์์ง๋ ๋ธ๋ก์ ๋ชจ๋ ๋ช ๊ฐ์ธ์ง ํ๋จํ๋ ํ๋ก๊ทธ๋จ์ ์ ์ํ๋ผ.
์ฝ๋ ์์
function solution(m, n, board) {
    // ๊ฐ ์์๋ฅผ ์ํํ๊ธฐ ์ฝ๊ฒ ๋ชจ๋ ๋ถ๋ฆฌํด์ ๋ฐฐ์ด์ ๋ด์์ค
    let arr = board.map(a => a.split(""))
    while(true) {
        // ํ๋ฒ์ ์ง์ฐ๊ธฐ ์ํด ์ง์์ผํ  ์ขํ๋ฅผ ๊ธฐ๋ก
    const coords = []
    for(let y = 0 ; y < arr.length-1 ; y ++) {
        for(let x = 0 ; x < arr[y].length -1 ; x ++) {
            // ๋น์ด์๋ ์๋ฆฌ๋ผ๋ฉด ๊ฑด๋๋
            if(arr[y][x] === null) continue
            // ์ ์ฅ์์ ๊ฐ๊ณผ ๊ฐ๋ค๋ฉด ์๋ซ์ค๊ณผ ๊ฒ์ฌํ์ฌ 2 * 2 ์กฐ๊ฑด ๊ฒ์ฌ
            if(arr[y][x] === arr[y][x+1] && arr[y][x] === arr[y+1][x] && arr[y][x] === arr[y+1][x+1]) {
                // ์ขํ๋ฅผ ๋ฐฐ์ด์ ์ฝ์
                coords.push([y,x])
            }
        }
    }
    // ์๋ฌด๊ฒ๋ ์ง์ธ๊ฒ์ด ์๋ค๋ฉด ๋น์นธ์ ๊ฐ์ ๋ฐํ
    if(!coords.length) {
        return arr.flat(Infinity).filter(el => el === null).length
    }
    
    // ์ ์ฅ๋ ์ขํ์ ๊ฐ๋ค์ null๋ก ๋ฐ๊ฟ
    coords.forEach(a => {
        arr[a[0]][a[1]] = null
        arr[a[0]][a[1]+1] = null
        arr[a[0]+1][a[1]] = null
        arr[a[0]+1][a[1]+1] = null
    })
    // ๋ธ๋ก ๋ด๋ฆฌ๊ธฐ
    for(let y = 0 ; y < arr.length ; y ++) {
        for(let x = 0 ; x < arr[y].length ; x ++) {
            // null ์ ๊ฐ์ ์ฐพ์์ ๋ ์ฒซ์งธ ์ค์ด ์๋๋ผ๋ฉด ์์ ๊ฐ๊ณผ ์๋ฆฌ๋ณ๊ฒฝ ( ๋ธ๋ก ๋ด๋ฆฌ๊ธฐ )
            if(arr[y][x] === null && y !== 0) {
                if(arr[y-1][x] !== null) {
                    arr[y][x] = arr[y-1][x]
                    arr[y-1][x] = null
                    y = y-1
                    x = -1
                }
            }
        }
    } 
    }
}