백준 1932번

김가람·2023년 3월 20일
0

1. 문제

1932번

2. Python Code

N = int(input())
num = [list(map(int, input().split())) for _ in range(N)]

dp = [[]]
dp[0].append(num[0][0]) # 삼각형의 맨 꼭대기값 초기화

for n in range(1,N): # 2번째 줄 부터 윗줄의 값을 더해나간다.
    temp = []
    temp.append(num[n][0] + dp[n-1][0]) # n번째 줄의 맨 왼쪽값 계산
    for m in range(1, n): # n번째 줄의 값 계산
        temp.append(num[n][m] + max(dp[n-1][m-1], dp[n-1][m]))
        # n번째 줄 m번째 값은 n-1번째 줄의 m-1, m번째 값 중 최댓값을 누적하여 계산
    temp.append(num[n][n] + dp[n-1][n-1]) # n번째 줄의 맨 오른쪽값 계산
    dp.append(temp)
answer = max(dp[N-1]) # N번째 줄의 최댓값을 출력
print(answer)
profile
부캐:데이터 사이언티스트가 되고 싶은 반도체 공장 노예

0개의 댓글