-문제:
-정답풀이:
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)
'백준 > DP' 카테고리의 다른 글
[dp/백준] 9184번: 신나는 함수 실행 (0) | 2022.06.19 |
---|---|
[dp/백준] 9252번: LCS2 (0) | 2022.06.18 |
[dp/백준] 1890번: 점프 (0) | 2022.06.17 |
[dp/백준] 2565번: 전깃줄 (0) | 2022.06.17 |
[dp/백준] 1309번: 동물원 (0) | 2022.06.17 |