반응형
[문제 출처]
https://www.acmicpc.net/problem/1932
1932번: 정수 삼각형
첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다.
www.acmicpc.net
[소스 코드]
삼각형의 변에 해당하는 숫자는 이동할 수 있는 경로가 바로 위에 줄에 변에 해당하는 숫자밖에 없다.
따라서 양끝에 해당하는 숫자에 대해서는 윗 줄의 값을 더해준다.
가운데에 위치한 숫자의 경우 대각선으로 좌우가 가능하다.
인덱스로 따지면 행 인덱스는 하나 적고, 열 인덱스는 같거나 하나 적은 부분의 숫자에 해당한다.
이 두 숫자 중에 더 큰 숫자를 더해서 저장한다.
#1932
n = int(input())
dp = []
for i in range(n):
dp.append(list(map(int, input().split())))
for i in range(1, n):
dp[i][0] += dp[i-1][0]
dp[i][i] += dp[i-1][i-1]
for j in range(1,i):
dp[i][j] += max(dp[i-1][j-1], dp[i-1][j])
print(max(dp[n-1]))
반응형
'알고리즘 > python' 카테고리의 다른 글
[python/파이썬] 백준 2738 행렬 덧셈 (1) | 2022.10.28 |
---|---|
[python/파이썬] 백준 4673 셀프 넘버 (0) | 2022.10.26 |
[python/파이썬] 백준 9184 신나는 함수 실행 (0) | 2022.10.13 |
[python/파이썬] 백준 1904 01타일 (0) | 2022.10.12 |
[python/파이썬] 백준 24416 알고리즘 수업 - 피보나치 수 1 (0) | 2022.10.11 |