가장 큰 정사각형 찾기
코딩테스트 연습 > 연습문제 > 가장 큰 정사각형 찾기
https://programmers.co.kr/learn/courses/30/lessons/12905
m, n = len(board), len(board[0])
for i in range(1, m):
for j in range(1, n):
board[i-1][j-1], board[i-1][j], board[i][j-1])
의 최소값에 1을 더하여 원소값을 갱신한다. if board[i][j] == 1:
board[i][j] = min(board[i-1][j-1], board[i-1][j], board[i][j-1]) + 1
import itertools
def solution(board):
m, n = len(board), len(board[0])
for i in range(1, m):
for j in range(1, n):
if board[i][j] == 1:
board[i][j] = min(board[i-1][j-1], board[i-1][j], board[i][j-1]) + 1
return max(itertools.chain(*board))**2
# Code test
board = [[0,1,1,1],[1,1,1,1],[1,1,1,1],[0,0,1,0]]
solution(board)