honey_pot

[Python] 가장 큰 정사각형 찾기 본문

문제 풀이

[Python] 가장 큰 정사각형 찾기

_tera_ 2022. 9. 21. 17:00

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


board의 0행, 0열일 경우, 해당 값이 0일 경우는 answer만 갱신한다

나머지 경우는 현재 위치의 대각선 위 [i-1][j-1], 위 [i-1][j] , 왼쪽 [i][j-1] 값을 비교하여 가장 작은 수에 +1을 한다

결론적으로 가능한 정사각형의 한 변의 길이를 board[i][j]에 저장하게 되므로 answer와 비교해서 가장 큰 값을 뽑는다

1
2
3
4
5
6
7
8
9
10
11
12
13
14
def solution(board):
 
    answer = float('-inf')
    row = len(board)
    col = len(board[0])
    for i in range(row):
        for j in range(col):
            if i ==0 or j ==0 or board[i][j] ==0:
                answer = max(answer, board[i][j])
                continue
            board[i][j] = min(board[i-1][j],board[i][j-1],board[i-1][j-1]) + 1
            answer = max(answer, board[i][j])
    
    return answer**2
cs

'문제 풀이' 카테고리의 다른 글

[Python] N-Queen  (0) 2022.09.22
[Python] 하노이의 탑  (0) 2022.09.22
[Python] 줄 서는 방법  (1) 2022.09.21
[Python] 쿼드압축 후 개수 세기  (0) 2022.09.21
[Python] 2개 이하로 다른 비트  (1) 2022.09.21
Comments