티스토리 뷰

알고리즘/BOJ

[BOJ-1149] RGB거리

개발하는 후딘 2020. 3. 15. 01:18
728x90
반응형

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

 

1149번: RGB거리

첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 같은 자연수이다.

www.acmicpc.net


[ 코드 ]

import sys
input=sys.stdin.readline

#집의 수
N=int(input())

#집
HOUSE=[ [*map(int, input().strip().split())] for _ in range(N)]

#현재N의 색깔과 N-1집 색깔은 서로 같지 않으므로, 점화식을 세우면
# DP[N][0]= HOUSE[N][0]+ min(DP[N-1][1], DP[N-1][2])
# DP[N][1]= HOUSE[N][1]+ min(DP[N-1][0], DP[N-1][2])
# DP[N][2]= HOUSE[N][2]+ min(DP[N-1][0], DP[N-1][1])
#=>모든 집을 칠하는 비용의 가장 최솟값: min(DP[N][0], DP[N][1], DP[N][2])
DP= [ [0]*3 for _ in range(N)]
for i in range(N):
    if i==0:
        DP[i]=HOUSE[0]
    else:
        DP[i][0]=HOUSE[i][0]+min(DP[i-1][1], DP[i-1][2])
        DP[i][1]=HOUSE[i][1]+min(DP[i-1][0], DP[i-1][2])
        DP[i][2]=HOUSE[i][2]+min(DP[i-1][0], DP[i-1][1])

result=min(DP[N-1])
print(result)

728x90
반응형

'알고리즘 > BOJ' 카테고리의 다른 글

[BOJ-1238] 파티  (0) 2020.03.16
[BOJ-10026] 적록색약  (0) 2020.03.15
[BOJ-14503] 로봇청소기2  (0) 2020.03.11
[BOJ-4963] 섬의개수  (0) 2020.03.11
[BOJ-2661] 좋은 수열  (0) 2020.03.11
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함