[프로그래머스 LV2] 가장 큰 정사각형 찾기

Junyoung Park·2022년 9월 13일
0

코딩테스트

목록 보기
613/631
post-thumbnail

1. 문제 설명

가장 큰 정사각형 찾기

2. 문제 분석

이전 행/열 인덱스 값이 1일 때를 확인, 그 순간까지 얻을 수 있는 가장 긴 정사각형의 (가능한) 변 길이를 dp를 통해 기록해두고 전역 변수와 비교해가면서 답을 구한다.

3. 나의 풀이

import Foundation

func solution(_ board:[[Int]]) -> Int {
    let rowCount = board.count
    let colCount = board[0].count
    var dp = Array(repeating: Array(repeating: 0, count: colCount + 1), count: rowCount + 1)
    var answer = 0
    for row in 1..<rowCount+1 {
        for col in 1..<colCount+1 {
            if board[row-1][col-1] == 1 {
                dp[row][col] = min(dp[row-1][col], dp[row][col-1], dp[row-1][col-1]) + 1
                answer = max(answer, dp[row][col])
            } 
        }
    }
    return answer * answer
}
profile
JUST DO IT

0개의 댓글