BAEKJOON #1149 RGB거리
2021. 4. 30. 11:20ㆍ개발노트
이 문제의 저작권은 BAEKJOON에 있습니다.
https://www.acmicpc.net/problem/1149
풀이
- 주어진 집들의 RGB값을 리스트에 삽입
- 첫번째 집은 이미 칠해져 있으니 for문을 1로해서 두번째 집부터 칠한다.
- 집마다 주어진 규칙에 따라 색이 겹치지 않도록 값을 구하고 리스트 값을 바꿔준다.
# RGB거리
# https://www.acmicpc.net/problem/1149
N = int(input())
RGB_list = []
for _ in range(N):
RGB_list.append(list(map(int, input().split(" "))))
# 집마다 칠하는 비용의 최솟값 구하기
for i in range(1, N):
# 1번째 칸을 빨간색으로 칠했을 때
RGB_list[i][0] = RGB_list[i][0] + min(RGB_list[i-1][1], RGB_list[i-1][2])
# 2번째 칸을 초록색으로 칠했을 때
RGB_list[i][1] = RGB_list[i][1] + min(RGB_list[i-1][0], RGB_list[i-1][2])
# 3번째 줄을 파란색으로 칠했을 때
RGB_list[i][2] = RGB_list[i][2] + min(RGB_list[i-1][0], RGB_list[i-1][1])
print(min(RGB_list[N-1][0], RGB_list[N-1][1], RGB_list[N-1][2]))