honey_pot
[Python] 가장 큰 정사각형 찾기 본문
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