백준(1149) - RGB거리 Python
백준(1149) - RGB거리
문제풀이: DP, 파이썬
해결방법
예시)
3
26 40 83
49 60 57
13 89 99
- 한줄 씩 입력된 값을 확인하면서 채워가면 된다.
-
- 빨간색 공간에는 40과 83중 작은 값이 들어갈 수 있다.
- 초록색 공간에는 26과 83중 작은 값이 들어갈 수 있다.
- 파란색 공간에는 26과 40중 작은 값이 들어갈 수 있다.
- 위와 같은 방식으로 채워나가서 마지막 행의 최소값을 출력하면 최솟값이 된다.
import sys
input = sys.stdin.readline
n = int(input())
houses = []
for i in range(n):
home = list(map(int, input().split()))
houses.append(home)
for i in range(1, n):
houses[i][0] += min(houses[i-1][1], houses[i-1][2])
houses[i][1] += min(houses[i-1][0], houses[i-1][2])
houses[i][2] += min(houses[i-1][0], houses[i-1][1])
print(min(houses[n-1][0], houses[n-1][1], houses[n-1][2]))
댓글남기기