파이썬, 가장 큰 정사각형 넓이 구하기
글. 오상문 sualchi@daum.net
# 가장 큰 정사각형 찾기
def solution1(board):
DP = board
for lo in range(1,len(board)): # low_size
for co in range(1,len(board[0])): # col_size
if board[lo][co] != 0:
DP[lo][co] += min(DP[lo][co-1],DP[lo-1][co-1],DP[lo-1][co])
answer = max([n for row in board for n in row])
return answer**2 # 가장 큰 정사각형 면적
def solution2(board):
for x in range(1,len(board[0])):
for y in range(1,len(board)):
if board[y][x] == 1:
board[y][x] = min(board[y-1][x-1],board[y-1][x],board[y][x-1])+1
answer = max([n for row in board for n in row])
return answer**2
#-----------------------------------------------------------
data = [[0,0,0,0,0,1],
[1,1,1,1,1,1],
[1,1,1,1,0,1],
[1,1,1,1,1,1],
[1,1,1,1,1,1]]
print(solution1(data)) # 16
print(solution1(data)) # 16
<이상>
'Python 기초' 카테고리의 다른 글
파이썬, JadenCase 문자열 만들기 (0) | 2019.10.10 |
---|---|
파이썬, 124 나라의 숫자 (0) | 2019.10.10 |
파이썬, 피보나치 수 구하기 (메모이제이션+재귀호출 방식) (0) | 2019.10.09 |
파이썬, 하샤드 수인가 (0) | 2019.10.08 |
파이썬, 콜라츠 추측 (Collatz conjecture) 문제 (0) | 2019.10.08 |