가장 큰 정사각형 찾기 자바스크립트

HyosikPark·2020년 11월 26일
0

알고리즘

목록 보기
42/72
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을 현재 행열의 값으로 넣는다.

그렇게 전체배열을 조사하여 나온 가장 큰 값이 정사각형의 한변의 길이가 된다.

0개의 댓글