반응형
알고리즘 분류
- 다이나믹 프로그래밍
SOLUTION
import sys
N = int(sys.stdin.readline())
RGB_cost = [list(map(int, sys.stdin.readline().split())) for _ in range(N)]
for i in range(1,N): # 이전 집 색깔과 겹치지 않는 것이 Key Point
RGB_cost[i][0] = min(RGB_cost[i-1][1], RGB_cost[i-1][2]) + RGB_cost[i][0] # 빨간색을 색칠하는 비용
RGB_cost[i][1] = min(RGB_cost[i-1][0], RGB_cost[i-1][2]) + RGB_cost[i][1] # 초록색을 색칠하는 비용
RGB_cost[i][2] = min(RGB_cost[i-1][0], RGB_cost[i-1][1]) + RGB_cost[i][2] # 파란색을 색칠하는 비용
print(min(RGB_cost[N-1][0], RGB_cost[N-1][1], RGB_cost[N-1][2])) # 색칠한 비용들 중 가장 최소비용을 출력
'코딩테스트 대비 > BOJ' 카테고리의 다른 글
[Baekjoon/Python] 1932번: 정수 삼각형 - 효과는 굉장했다! (0) | 2022.04.03 |
---|---|
[Baekjoon/Python] 1629번: 곱셈 - 효과는 굉장했다! (0) | 2022.04.03 |
[Baekjoon/Python] 15666번: N과 M (12) - 효과는 굉장했다! (0) | 2022.03.28 |
[Baekjoon/Python] 15663번: N과 M (9) - 효과는 굉장했다! (0) | 2022.03.28 |
[Baekjoon/Python] 11725번: 트리의 부모 찾기 - 효과는 굉장했다! (0) | 2022.03.28 |