For Programmer

백준 1149번 파이썬 문제풀이(DP - RGB거리) 본문

코팅테스트/백준 문제 모음

백준 1149번 파이썬 문제풀이(DP - RGB거리)

유지광이 2021. 11. 6. 14:14
728x90


import sys

input = sys.stdin.readline

N = int(input())
cost = [[0, 0, 0]]
for _ in range(N):
    cost.append(list(map(int, input().split())))

dp = [i for i in cost]

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

print(min(dp[N]))

-> 간단한 문제이다. dp를 우선 입력받은 cost와 똑같이 만들어준다. 그 이후 문제의 조건에 맞게 2부터 입력받은 N까지 i로 돌며 i일때의 R,G,B를 각각 최소 비용으로 설정해주면서 DP를 돈다.

728x90
Comments