[파이썬] 백준 1932 : 정수 삼각형
1932번: 정수 삼각형
첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다.
www.acmicpc.net
문제
풀이
0. 방향성 생각
딱 봐도 DP 문제.
1. 규칙 찾기
입력 받을 때에는 직각삼각형으로 들어와서 위에 행이 아래 행에 어떻게 영향주는지 파악을 해야한다.
맨 왼쪽, 맨 오른쪽 줄에는 계속 맨 왼쪽, 오른쪽의 합을 누적해준다.
가운데 끼어있는 경우에는 자신과 인덱스가 같거나, 하나 적은 인덱스에서 숫자가 내려온다.
이 때 둘 중 큰 숫자를 택하면 된다.
전체 코드
n = int(input())
arr = []
for i in range(n):
arr.append(list(map(int,input().split())))
for h in range(1,n):
for w in range(h+1):
if w==0 :
arr[h][0] += arr[h-1][0]
elif w==h:
arr[h][-1] += arr[h-1][-1]
else :
arr[h][w] += max(arr[h-1][w-1],arr[h-1][w])
print(max(arr[-1]))
DP치고는 크게 생각할거리가 없다. 가중치나 조건없는 계단오르기 정도의 문제
'Algorithm > Dynamic Programming' 카테고리의 다른 글
[파이썬] 백준 1149 : RGB거리 (실버1) (0) | 2023.07.20 |
---|---|
[파이썬] 백준 1562: 계단 수 (골드1) (0) | 2023.07.18 |
[파이썬] 프로그래머스 : 땅따먹기 (Lv.2) (0) | 2023.07.08 |
[파이썬] 백준 11726, 11727 : 2xn 타일링, 2xn타일링 2 (실버3) (0) | 2023.06.01 |
[파이썬] 백준 1003 : 피보나치 함수 (실버3) (0) | 2023.06.01 |
[파이썬] 백준 9095 : 1, 2, 3 더하기제목 (실버3) (0) | 2023.06.01 |
[파이썬] 백준 9461 : 파도반 수열 (실버3) (0) | 2023.06.01 |
댓글