맛동산

(파이썬)백준 알고리즘 1149번 RGB거리 본문

파이썬/알고리즘

(파이썬)백준 알고리즘 1149번 RGB거리

오지고지리고알파고포켓몬고 2017. 5. 25. 12:32

백준 알고리즘 저지 1065번 문제 (https://www.acmicpc.net/problem/1149)

 

 

i = 0일때 비용으로 초기화

i = 1~n일때 0번 인덱스 - R+(i-1[1]), R+(i-1[2]) 의 대소관계에 따라 세팅, 1번은 G+(i-1[0]) G+(i-1)[2], 2번은 B+(i-1)[1] B+(i-1)[1]

 

뭔가 현재를 기준으로 과거의 케이스를 반영하는게 RNN의 원리 같은 느낌

 

i=0에서 R을 택했을때 i=1에서 G를 택하냐 B를 택하냐가 아니라

i=1에서 R이 있을때 i=0에서 G와 B중 저렴한걸 따짐

 

 
a=[]
N=int(input())
for i in range(N):
    a.append([0,0,0])
for i in range(N):
    if i==0:
        a[0]=list(map(int,input().split()))
    else:
        r,g,b=map(int,input().split())
        if r+a[i-1][1] > r+a[i-1][2]: a[i][0]=r+a[i-1][2]
        else:a[i][0]=r+a[i-1][1]

        if g+a[i-1][0] > g+a[i-1][2]: a[i][1]=g+a[i-1][2]
        else:a[i][1]=g+a[i-1][0]

        if b+a[i-1][0] > b+a[i-1][1]: a[i][2]=b+a[i-1][1]
        else:a[i][2]=b+a[i-1][0]

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

 

이걸 많이 푼다고 이런 사고가 생기는 것일까?

아니면 그저 지식 주입을 통한 적용인가

Comments