1일 1PS 9일차!

문제


실버 1

  • 첫 번째부터 최소값을 더해나가면 된다.
  • 하지만 이때 연속해서 같은 색이면 안되는데, 마지막 예제를 통해 확인해보면
    • 두 번째 줄의 빨강은 R(32) + min(G(39), B(44)) 이다.
    • 두 번째 줄의 초록은 G(83) + min(R(71), B(44)) 이다.
  • 위와 같이 한 줄씩 더해 내려가면 된다.

포인트


  1. 두 번째 줄부터 i 번째는 i - 1 번째에서 다른 색의 최소값을 합한다.

코드



n = int(input())
a = [0]*n

for i in range(n):
    a[i] = list(map(int,input().split()))

for i in range(1,n):
    a[i][0]= min(a[i-1][1],a[i-1][2]) + a[i][0]
    a[i][1]= min(a[i-1][0],a[i-1][2]) + a[i][1]
    a[i][2]= min(a[i-1][0],a[i-1][1]) + a[i][2]

print(min(a[n-1][0],a[n-1][1],a[n-1][2]))

업데이트:

댓글남기기