참고 사이트: 남주는 IT 블로그, 개발 노트
문제링크 : https://www.acmicpc.net/problem/9461
우선 문제 이해가 너무 어려웠다.
https://velog.io/@dawnofspring/패스트캠퍼스-6강-DP-1-정수-삼각형 을 응용해서 풀어보려했지만, 최솟값을 구하는 문제라 생각을 다시 해야했다.
import sys
input = sys.stdin.readline
N = int(input())
RGB = []
for i in range(1, N+1):
RGB.append(list(map(int, input().split())))
for i in range(1, N):
RGB[i][0] = min(RGB[i - 1][1], RGB[i - 1][2]) + RGB[i][0]
RGB[i][1] = min(RGB[i - 1][0], RGB[i - 1][2]) + RGB[i][1]
RGB[i][2] = min(RGB[i - 1][0], RGB[i - 1][1]) + RGB[i][2]
print(min(RGB[-1]))
입력 배열과, DP 배열을 꼭 각각 만들 필요가 없다는 점