function solution(board) {
let row = board.length;
let column = board[0].length;
if (row <= 1 || column <= 1) return 1;
let answerLength = 0;
for (let i = 1; i < row; i++) {
for (let j = 1; j < column; j++) {
if (board[i][j] >= 1) {
let cross = board[i - 1][j - 1];
let up = board[i - 1][j];
let left = board[i][j - 1];
if (cross >= 1 && up >= 1 && left >= 1) {
board[i][j] = Math.min(cross, up, left) + 1;
}
answerLength = Math.max(answerLength, board[i][j]);
}
}
}
return answerLength ** 2;
}
- ์ฃผ์ด์ง ๋ฐฐ์ด์์ 0๋ฒ์งธ๊ฐ ์๋ i = 1, j = 1๋ถํฐ ๊ธฐ์ค์ ์ก์ต๋๋ค.
- ๊ทธ ๊ธฐ์ค์ ์ด 1 ์ด์์ผ ๋, ์ผ์ชฝ์ ๋๊ฐ์ , ์, ์ผ์ชฝ ์ธ ๋ถ๋ถ์ ๊ฐ์ด ๋ชจ๋ 1 ์ด์์ธ ๊ฒฝ์ฐ ๊ทธ ๊ธฐ์ค์ ์ ์ธ ๊ตฐ๋ฐ์ ๊ฐ์ค ์์ ๊ฐ์ + 1์ ํ ๊ฐ์ ํ ๋นํฉ๋๋ค.
- ์ต์ข ์ ์ผ๋ก ๊ทธ ๋์ ๊ฐ์ ์ ์ฌ๊ฐํ์ ๋ณ์ ๊ธธ์ด๊ฐ ํ ๋น๋ฉ๋๋ค. ๊ทธ ๊ฐ์ ์ ๊ณฑ์ ๋ฆฌํดํฉ๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ๋ฌธ์ ์์ฒด์ ์๋๋ฅผ ์๊ฒ ์ผ๋ ํ
์คํธ์ผ์ด์ค ๋ถ๋ถ์์ ์์ฌ์ด ์ ๋ค์ด ๋ง์ ๋ฌธ์ ์์ต๋๋ค.
์ ์ฝ๋๋ก๋ ๋ค ํต๊ณผ๊ฐ ๋์ง๋ง ํน์ ๋์น ๋ถ๋ถ์ ์์๊น ์๊ฐํด๋ดค๋๋ฐ
์๋ฅผ ๋ค์ด, ์ฒซ์งธ ํ ํน์ ์ฒซ์งธ ์ด์ 1์ด ํ๋๋ผ๋ ์๊ณ ๊ทธ ์ธ์๋ ์ ๋ถ 0์ธ ๊ฒฝ์ฐ ๋ถ๋ช
ํ 1์ ๋ฆฌํดํด์ผํ๋๋ฐ(์๋ฌดํผ 1์ด ํ๋ ์์ผ๋ ๊ฐ์ฅ ํฐ ์ ์ฌ๊ฐํ์ ๋์ด๋ 1์ด๊ธฐ ๋๋ฌธ์) ์ ์ฝ๋๋ 0์ ๋ฆฌํดํ๊ฒ ๋ฉ๋๋ค.
์ด ๋ถ๋ถ์ ํด๊ฒฐํ๊ณ ์ถ์ด board.flat().find((x) => x === 1)์ด true์ false๋ฅผ ๋๋ ์ ์ฒ๋ฆฌํ๋ ค ํ์๋๋ฐ ์๊ฐ ๋ณต์ก๋๋ก ํจ์จ์ฑ์์ ์ด๊ณผ๊ฐ ๋์ต๋๋ค.
'๐ JavaScript > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ์ฐ์ต๋ฌธ์ - 3 x n ํ์ผ๋ง (0) | 2022.07.10 |
---|---|
[JS] ์ฐ์ต๋ฌธ์ - ๋ ๋ฐ๋จน๊ธฐ (0) | 2022.07.09 |
[JS] ์ฐ์ต๋ฌธ์ - ๋ฉ๋ฆฌ ๋ฐ๊ธฐ (0) | 2022.07.07 |
[JS] ์ฐ์ต๋ฌธ์ - ๋ค์ ํฐ ์ซ์ (0) | 2022.07.06 |
[JS] ์ฐ์ต๋ฌธ์ - ์ฌ๋ฐ๋ฅธ ๊ดํธ (0) | 2022.07.06 |