티스토리 뷰
728x90
반응형
문제

1149번: RGB거리
첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나
www.acmicpc.net
코드
T = int(input())
rgb = []
for i in range(T):
rgb.append(list(map(int,(input().split()))))
for i in range(1,T):
rgb[i][0] = rgb[i][0] + min(rgb[i-1][1], rgb[i-1][2])
rgb[i][1] = rgb[i][1] + min(rgb[i-1][0], rgb[i-1][2])
rgb[i][2] = rgb[i][2] + min(rgb[i-1][0], rgb[i-1][1])
print(min(rgb[T-1]))
# rgb (입력)
# 26 40 83
# 49 60 57
# 13 89 99
# rgb
# 26 40 83
# 89 86 83
# 96 172 185
코드설명
최적의 해를 찾기위해서 이전에 값에서 자신의 색깔을 제외한 두 색깔중 작은 값과 더해간다.
dp를 이용해 값을 저장해주고 그 값중 가장 작은 값을 출력해주면 된다.
rgb 이중배열에서 rgb[1]부터 [T-1]까지 for문을 돌린다. rgb[0]에는 원래 입력값이 들어있어 그값을 토대로 [T-1]까지 더해가면 된다.
rgb[T-1]중에서 가장 작은 값을 출력하면 그 값이 최솟값이다.
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 11047번 동전 0 (Python) (0) | 2021.03.13 |
---|---|
[백준] 1932번 정수 삼각형 (Python) (0) | 2021.03.13 |
[백준] 9461번 파도반 수열 (Python) (0) | 2021.03.13 |
[백준] 9184번 신나는 함수 실행 (Python) (0) | 2021.03.13 |
[백준] 1436번 영화감독 숌 (Python) (0) | 2021.03.12 |