728x90
예전에 fastcampus에서 한번 다뤘던 문제라고 기억을 하는데
이미 기억에서 지워진 문제
DP로 푸는것만 기억하고 나머지는 다 잊어버림
def solution(board):
width = len(board[0])
height = len(board)
for x in range(1,height):
for y in range(1,width):
if board[x][y] == 1:
board[x][y] = min(board[x-1][y-1], min(board[x-1][y], board[x][y-1])) + 1
return max([item for row in board for item in row])**2
굳이 DP list를 만들겠다면
def solution(board):
width = len(board[0])
height = len(board)
DP = [[0 for _ in range(width)] for _ in range(height)]
for x in range(1,height):
for y in range(1,width):
if board[x][y] == 1:
DP[x][y] = min(DP[x-1][y-1], min(DP[x-1][y], DP[x][y-1])) + 1
for a in DP:
print(a)
return max([item for row in DP for item in row])**2
728x90
'Algorithm' 카테고리의 다른 글
[프로그래머스] 땅따먹기 파이썬 (0) | 2021.03.15 |
---|---|
[프로그래머스] 다음 큰 숫자 (0) | 2021.03.15 |
[프로그래머스] 쿼드압축 후 개수 세기 파이썬 (0) | 2021.03.15 |
[프로그래머스] 타겟 넘버 (BFS/DFS) 파이썬 (0) | 2021.03.15 |
[프로그래머스] 카펫 파이썬 (0) | 2021.03.12 |
댓글