백준/DP
[dp/백준] 1937번: 욕심많은 판다(다시 풀어보기)
ydin
2022. 6. 18. 22:33
-문제:
-정답풀이:
n=int(input())
data=[]
for _ in range(n):
data.append(list(map(int,input().split())))
dx=[-1,1,0,0]
dy=[0,0,-1,1]
dp=[[0]*n for _ in range(n)]
def dfs(x,y):
if dp[x][y]: #여기
return dp[x][y] #여기
dp[x][y]=1 #여기
for i in range(4):
nx,ny=x+dx[i],y+dy[i]
if 0 <= nx < n and 0 <= ny < n:
if data[x][y]< data[nx][ny]:
dp[x][y]=max(dp[x][y],dfs(nx,ny)+1) #지금까지 온 칸 수와 이동했을 때 칸 개수 비교
return dp[x][y]
answer=0
for i in range(n):
for j in range(n):
answer=max(answer,dfs(i,j))
print(answer)