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일까? 이게 훨씬 쉬운데... 아무튼 성공!
'스터디 1일 1커밋' 카테고리의 다른 글
| 240611 [BOJ/백준] 2210. 숫자판 점프 (0) | 2024.06.11 |
|---|---|
| 240610 [BOJ/백준] 1912. 연속합 (0) | 2024.06.10 |
| 240530 [BOJ/백준] 15663. N과 M(9) (0) | 2024.05.30 |
| 240528 [BOJ/백준] 1926. 그림 (0) | 2024.05.28 |
| 240527 [BOJ/백준] 3980. 선발 명단 (0) | 2024.05.27 |