알고리즘 문제를 풀다보면 2차원 리스트를 초기화를 해야 할 경우가 많이 있다.
d = [[0 for _ in range(W)] for _ in range(H)]
d = [[0] * W for _ in range(H)]
list = [[] * n for _ in range(n)]
n, m = map(int, input().split())
board = [list(map(int, input().split())) for _ in range(n)]
dp = [[0] * m for _ in range(n)]
dp[0][0] = board[0][0]
for i in range(n):
for j in range(m):
if i == 0 and j == 0:
continue
if i == 0 and j - 1 > 0:
dp[i][j] = dp[i][j-1] + board[i][j]
elif j == 0 and i - 1 > 0:
dp[i][j] = dp[i-1][j] + board[i][j]
else:
dp[i][j] = max(dp[i-1][j], dp[i][j-1]) + board[i][j]
ans = max(map(max, dp))
print(ans)
2차원 리스트에서 최대값, 최소값을 구할때 map함수를 사용하면 편하다.
mx = max(map(max, dp))
mn = min(map(min, dp))