본문 바로가기

스터디 1일 1커밋

240531 [BOJ/백준] 1149. RGB거리

https://www.acmicpc.net/problem/1149


나의 코드

import sys

n = int(input())
cost = [list(map(int, sys.stdin.readline().split())) for _ in range(n)]
dp = [[10e6]*3 for _ in range(n+1)]

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

print(min(dp[n-1]))

 

결과


저번에 풀었던 진우의 달여행 문제가 떠올랐다. 그치만 더 쉬웠던건 색이 3가지이고 전에 칠했던 색만 피하면 된다는 사실. 왜 진우의 달여행은 실버3이고 이건 실버1일까? 이게 훨씬 쉬운데... 아무튼 성공!