[BaekJoon] 백준 1149번 : RGB거리

Updated:

1149번 : RGB거리

스크린샷 2020-10-10 오후 5 31 15


[Programmers] 땅따먹기 문제랑 똑같은 내용의 문제이다.

각 행마다 이전의 행에서 자신과 같은 j 를 제외한 값들 중 최솟값을 계속 저장해 가면 된다.

그렇게 하면 마지막 행의 최솟값이 답이 된다.


import sys


def solution(arr, N):
	for i in range(1, N):
		for j in range(3):
			if j == 0:
				arr[i][j] += min(arr[i - 1][j + 1], arr[i - 1][j + 2])
			elif j == 1:
				arr[i][j] += min(arr[i - 1][j - 1], arr[i - 1][j + 1])
			elif j == 2:
				arr[i][j] += min(arr[i - 1][j - 2], arr[i - 1][j - 1])

	print(min(arr[N - 1]))


N = int(input())
arr = [list(map(int, sys.stdin.readline().rsplit())) for _ in range(N)]
solution(arr, N)



Categories:

Updated:

Leave a comment