🔻PS/Baekjoon
[Baekjoon] 백준 1937 욕심쟁이 판다 Python
_니지
2024. 10. 1. 22:56
https://www.acmicpc.net/problem/1937
import sys
input = sys.stdin.readline
sys.setrecursionlimit(10**6)
n = int(input())
graph = []
visited = [[0 for _ in range(n)] for _ in range(n)]
dp = [[-1 for _ in range(n)] for _ in range(n)]
for _ in range(n):
temp = list(map(int, input().split(" ")))
graph.append(temp)
dx = [0, 0, 1, -1]
dy = [1, -1, 0, 0]
max_val = 0
cnt = 0
def dfs(x, y):
if dp[x][y] != -1:
return dp[x][y]
dp[x][y] = 1
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
if 0<= nx and nx < n and 0<= ny and ny < n and graph[x][y] < graph[nx][ny] and not visited[nx][ny]:
dp[x][y] = max(dp[x][y], dfs(nx, ny)+1)
return dp[x][y]
for i in range(n):
for j in range(n):
max_val = max(max_val, dfs(i,j))
print(max_val)
728x90
반응형