코딩테스트/백준 (python)
백준 / 1149번 / RGB거리 / python 파이썬
seulll
2024. 9. 19. 17:25
문제 : https://www.acmicpc.net/problem/1149
코드
import sys
input = sys.stdin.readline
n = int(input())
HC = []
for _ in range(n):
HC.append(list(map(int, input().split())))
for i in range(1, n):
HC[i][0] = HC[i][0] + min(HC[i - 1][1], HC[i - 1][2])
HC[i][1] = HC[i][1] + min(HC[i - 1][0], HC[i - 1][2])
HC[i][2] = HC[i][2] + min(HC[i - 1][0], HC[i - 1][1])
print(min(HC[n-1]))
이전 집에서 사용한 색을 제외한 색 중 비용이 더 저렴한 색을 칠하는 문제이다.
다이나믹 프로그래밍 (DP) 문제로 DP 테이블을 이용해 현재 집의 비용에 이전 집의 최소 비용을 더해가며 누적된 비용들 중 최솟값을 찾으면 답을 구할 수 있다.