[JavaScript][Programmers] 가장 큰 사각형 찾기

조준형·2021년 8월 12일
0

Algorithm

목록 보기
64/142
post-thumbnail

🔎 가장 큰 사각형 찾기

❓ 문제링크

https://programmers.co.kr/learn/courses/30/lessons/12905

📄 제출 코드

function solution(board)
{
    let row_len = board[0].length;
    let col_len = board.length;
    let answer = 0;
    if (row_len < 2 || col_len < 2) return 1;
    for (let i = 1; i < col_len; i++) {
        for (let j = 1; j < row_len; j++) {
            if (board[i][j] > 0) {
                let min = Math.min(board[i - 1][j - 1], board[i][j - 1], board[i - 1][j])
                board[i][j] = min + 1;
            }
            answer = Math.max(board[i][j], answer);
        }
    }
    

    return answer*answer
}
let board = [[0, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1], [0, 0, 1, 0]];
console.log(solution(board));

처음에 반복문으로 했다가 실패하여 질문게시판을 참고했다. 거기서 다른분의 해설을 참고해 다시 구현하였다.

해당 인덱스의 map 값이 1일 경우 왼쪽, 위쪽, 왼쪽위쪽의 최소값 +1이 현재 길이가된다.
그 후 최대값을 저장해 두었다가 마지막에 넓이를 구할 때 사용한다.

📘 참고

https://minnnne.tistory.com/16

profile
깃허브 : github.com/JuneHyung

0개의 댓글