티스토리 뷰

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import sys
 
test_case = int(input())
triangle = []
result = [[] for _ in range(test_case)]
for case in range(test_case):
    if case == 0# 제일 상단 값 집어 넣기
        top = int(input())
        triangle.append([top])
        result[case].append(top)
    else:
        triangle.append(list(map(int, sys.stdin.readline().split())))
        for i in range(case+1):
            if i == 0# 제일 좌측일 경우
                result[case].append(triangle[case][i]+result[case-1][i])
            elif i == case: # 제일 우측일 경우
                result[case].append(triangle[case][i]+result[case-1][i-1])
            else# 자신의 좌상과 우상 값 중 더 큰 값을 선택하여 더한다.
                result[case].append(triangle[case][i]+max(result[case-1][i-1], result[case-1][i]))
 
print(max(result[-1]))
cs