본문 바로가기
Programming/알고리즘

백준 - RGB 거리, python

by 구튼탁 2020. 9. 7.
728x90
n = int(input())
d = []

for i in range(n):
    d.append( list(map(int, input().split())) )

for i in range(len(d)):
    if i == 0:
        continue
        
    d[i][0] = min(d[i-1][1], d[i-1][2]) + d[i][0]
    d[i][1] = min(d[i-1][0], d[i-1][2]) + d[i][1]
    d[i][2] = min(d[i-1][0], d[i-1][1]) + d[i][2]

print(min( d[len(d)-1][0], d[len(d)-1][1], d[len(d)-1][2] ))

모든 경우의 수를 다 구해서 최솟값을 리턴. min

  • d[i][0] = min(d[i-1][1], d[i-1][2]) + d[i][0]
  • d[i][1] = min(d[i-1][0], d[i-1][2]) + d[i][1]
  • d[i][2] = min(d[i-1][0], d[i-1][1]) + d[i][2]
728x90

'Programming > 알고리즘' 카테고리의 다른 글

[java, 알고리즘, 그리디] :: 큰 수의 법칙  (1) 2021.02.14
[greedy] - 백준 11399번 ATM  (0) 2020.09.16
백준 - 1로 만들기, DP / python3  (0) 2020.09.06
implementation, 구현  (0) 2020.08.25
그리디 알고리즘  (0) 2020.08.25

댓글