문제 링크: https://www.acmicpc.net/problem/17404
백준 알고리즘 기초 1/2 402에서 2번째 - 17404번 RGB거리 2를 풀어보았다.
C++
Python
n=int(input())
arr=[]
inf=10000
res=inf
for i in range(n):
arr.append(list(map(int,input().split())))
dp=[[0]*3 for i in range(2)]
for i in range(3):
dp[0][0],dp[0][1],dp[0][2]=inf,inf,inf
dp[0][i]=arr[0][i]
for j in range(1,n):
dp[1][0]=min(dp[0][1],dp[0][2])+arr[j][0]
dp[1][1]=min(dp[0][0],dp[0][2])+arr[j][1]
dp[1][2]=min(dp[0][0],dp[0][1])+arr[j][2]
dp[0][0],dp[0][1],dp[0][2]=dp[1][0],dp[1][1],dp[1][2]
res=min(res,min(dp[0][(i+1)%3],dp[0][(i+2)%3]))
print(res)
Java
'코테용 문제풀이 > 백준' 카테고리의 다른 글
사탕 게임 풀이 (0) | 2023.01.19 |
---|---|
일곱 난쟁이 풀이 (0) | 2023.01.18 |
타일 채우기 풀이 (0) | 2023.01.18 |
연속합 2 풀이 (0) | 2023.01.18 |
가장 긴 바이토닉 부분 수열 풀이 (0) | 2023.01.17 |