
푼 날짜 : 2024.09.13
푼 문제 : [1149] / RGB거리
사용한 언어 : python
알고리즘 : DP
점화식 :
dp[i][0] = colors[i][0] + min(dp[i-1][1], dp[i-1][2])
dp[i][1] = colors[i][1] + min(dp[i-1][0], dp[i-1][2])
dp[i][2] = colors[i][2] + min(dp[i-1][0], dp[i-1][1])
초기값은 dp[0]을 colors[0]을 넣어주고 시작했다.
그리고 dp테이블을 하나씩 채워나가는데, i번째의 0번째 요소를 채우기 위해서는 i-1번째의 0번이 아닌 1번과 2번 중 더 작은 값을 더해서 채워준다. 이렇게 해야 값을 최소로 만들며 더해갈 수 있기 때문이다.

코드 :
import sys
N = int(sys.stdin.readline())
colors = []
dp = [[0 for _ in range(3)] for _ in range(N)]
for i in range(N):
color = list(map(int, sys.stdin.readline().split()))
colors.append(color)
dp[0] = colors[0]
for i in range(1, N):
dp[i][0] = colors[i][0] + min(dp[i-1][1], dp[i-1][2])
dp[i][1] = colors[i][1] + min(dp[i-1][0], dp[i-1][2])
dp[i][2] = colors[i][2] + min(dp[i-1][0], dp[i-1][1])
print(min(dp[-1]))
생각보다 쉬웠던 문제였다!
앞으로도 DP에 익숙해지게 열심히 풀어야지...
'Programming > Algorithm' 카테고리의 다른 글
[백준11055] / 가장 큰 증가하는 부분 수열 - DP (0) | 2024.09.21 |
---|---|
[백준9465] / 스티커 - DP (1) | 2024.09.14 |
[백준1303] / 전쟁 - 전투 - DFS (0) | 2024.09.11 |
[백준13549] / 숨바꼭질3 - BFS (2) | 2024.09.06 |
[백준2470] / 두 용액 - 투포인터, 정렬 (0) | 2024.09.05 |

푼 날짜 : 2024.09.13
푼 문제 : [1149] / RGB거리
사용한 언어 : python
알고리즘 : DP
점화식 :
dp[i][0] = colors[i][0] + min(dp[i-1][1], dp[i-1][2])
dp[i][1] = colors[i][1] + min(dp[i-1][0], dp[i-1][2])
dp[i][2] = colors[i][2] + min(dp[i-1][0], dp[i-1][1])
초기값은 dp[0]을 colors[0]을 넣어주고 시작했다.
그리고 dp테이블을 하나씩 채워나가는데, i번째의 0번째 요소를 채우기 위해서는 i-1번째의 0번이 아닌 1번과 2번 중 더 작은 값을 더해서 채워준다. 이렇게 해야 값을 최소로 만들며 더해갈 수 있기 때문이다.

코드 :
import sys
N = int(sys.stdin.readline())
colors = []
dp = [[0 for _ in range(3)] for _ in range(N)]
for i in range(N):
color = list(map(int, sys.stdin.readline().split()))
colors.append(color)
dp[0] = colors[0]
for i in range(1, N):
dp[i][0] = colors[i][0] + min(dp[i-1][1], dp[i-1][2])
dp[i][1] = colors[i][1] + min(dp[i-1][0], dp[i-1][2])
dp[i][2] = colors[i][2] + min(dp[i-1][0], dp[i-1][1])
print(min(dp[-1]))
생각보다 쉬웠던 문제였다!
앞으로도 DP에 익숙해지게 열심히 풀어야지...
'Programming > Algorithm' 카테고리의 다른 글
[백준11055] / 가장 큰 증가하는 부분 수열 - DP (0) | 2024.09.21 |
---|---|
[백준9465] / 스티커 - DP (1) | 2024.09.14 |
[백준1303] / 전쟁 - 전투 - DFS (0) | 2024.09.11 |
[백준13549] / 숨바꼭질3 - BFS (2) | 2024.09.06 |
[백준2470] / 두 용액 - 투포인터, 정렬 (0) | 2024.09.05 |