RUBY

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

PS/Programmers

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

RUBY_루비 2020. 10. 23. 23:59

출처:: programmers.co.kr/learn/courses/30/lessons/12905?language=python3

분류:: 완전탐색, dp

 

1. 문제 이해 및 해결과정

 1) dp

- O(n^3)로 완탐하면 시간초과 발생가능성이 있으므로, dp를 고려함
- dp는 만들 수 있는 최대 직사각형의 크기
- board[i][j]가 1일 경우에만, dp = min(board[i-1][j-1],board[i][j-1],board[i-1][j]) + 1

 

2. 풀이방법

  1. dp

def solution(board):
    h=len(board) #세로
    w=len(board[0]) #가로
    
    for i in range(1,h):
        for j in range(1,w):
            board[i][j]=min(board[i-1][j-1],board[i][j-1],board[i-1][j])+1        

    return max([ i  for row in board for i in row ])**2 #최대값을 찾아서 제곱

 

3. 오답원인

 

4. 알게된 점

 

'PS > Programmers' 카테고리의 다른 글

[프로그래머스] 쿼드압축 후 개수 세기  (0) 2020.10.24
[프로그래머스] 위장  (0) 2020.10.23
[프로그래머스] 전화번호 목록  (0) 2020.10.22
[프로그래머스] H-Index  (1) 2020.10.22
[프로그래머스] 구명보트  (0) 2020.10.22
Comments