백준_1149_RGB거리(DP)

맹민재·2023년 4월 3일
0

알고리즘

목록 보기
22/134
n = int(input())
rgb = [[0]*3 for _ in range(n)]

for i in range(n):
    rgb[i] = [int(v) for v in input().split()]

dp = [[0]*3 for _ in range(n)]
dp[0] = rgb[0]

for i in range(1, n):
    dp[i][0] = min(dp[i-1][1], dp[i-1][2])+ rgb[i][0]
    dp[i][1] = min(dp[i-1][0], dp[i-1][2])+ rgb[i][1]
    dp[i][2] = min(dp[i-1][0], dp[i-1][1])+ rgb[i][2]

print(min(dp[-1]))

2차원 배열을 쓰는 DP의 맛보기 문제

같은 색이 중복되면 안되므로 이전 값들의 합을 저장할 때 같은 인덱스는 피해서 구해준다.

profile
ㄱH ㅂrㄹ ㅈr

0개의 댓글