[BaekJoon] 백준 1149번 : RGB거리
Updated:
1149번 : RGB거리
[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)
Leave a comment