https://www.acmicpc.net/problem/1932
#Solution
삼각형의 제일 밑에서부터 최댓값을 저장해가면서 올라간다. 대각선 왼쪽 아래와 대각선 오른쪽 아래 중 큰 수와 자기자신을 더한 값이 그 아래 경로의 최댓값이다.
triangle = int(input())
triangle_matrix = []
max_matrix = [[] for _ in range(triangle)]
for _ in range(triangle):
triangle_matrix.append(list(map(int, input().split())))
#역순으로 하위 항목을 모두 더한 최댓값을 저장
for i in range(triangle - 1, -1, -1):
for j in range(len(triangle_matrix[i])):
if i == triangle - 1:
max_matrix[i].append(triangle_matrix[i][j])
else:
max_matrix[i].append(triangle_matrix[i][j] + max(max_matrix[i+1][j], max_matrix[i+1][j+1]))
print(max_matrix[0][0])
'Programming [Python] > 백준 알고리즘 솔루션' 카테고리의 다른 글
#149 백준 파이썬 [5430] AC - 덱 (0) | 2019.10.24 |
---|---|
#148 백준 파이썬 [11866] 조세퍼스 문제 0 (0) | 2019.10.24 |
#146 백준 파이썬 [2606] 바이러스 - BFS (0) | 2019.10.23 |
#145 백준 파이썬 [1967] 트리의 지름 - BFS (0) | 2019.10.23 |
#144 백준 파이썬 [1991] 트리 순회 (0) | 2019.10.22 |