function solution(board) {
let answer = 0;
if(board.length == 1 || board[0].length == 1) return 1;
for(let i = 1; i< board.length; i++) {
for(let j = 1; j<board[0].length; j++) {
if(board[i][j] > 0) {
let min = Math.min(board[i][j-1],board[i-1][j],board[i-1][j-1]);
board[i][j] = min + 1;
}
answer = Math.max(answer, board[i][j]);
}
}
return answer * answer;
}
2차원 배열 board의 1행 1열 이상부터 반복문을 실행하여
현재 행열의 값이 1이라면 왼쪽, 왼쪽상단,위쪽의 값중 가장 작은값 + 1을 현재 행열의 값으로 넣는다.
그렇게 전체배열을 조사하여 나온 가장 큰 값이 정사각형의 한변의 길이가 된다.