#1149

강채희·2021년 5월 26일
0
post-thumbnail

#1149

문제

풀이

N=int(input())
p=[]
for i in range(N):
    p.append(list(map(int,input().split())))

for i in range(1,N):
    #빨간색
    p[i][0]+=min(p[i-1][1],p[i-1][2])
    #초록색
    p[i][1]+=min(p[i-1][0],p[i-1][2])
    #파란색
    p[i][2]+=min(p[i-1][0],p[i-1][1])
    
cost=min(p[N-1][0],p[N-1][1],p[N-1][2])
print(cost)

p의 열 부분에 0,1,2는 각각 빨강,초록,파랑을 칠한다고 생각하면 된다.
i번째에 빨강을 칠했을때 전단계인 i-1에는 초록 혹은 파랑만을 칠할 수 있는데 이때 페인트의 값이 가장 작은 값을 p[i][0]에 더해주는 것으로 한다.
i번째에 초록,파랑을 더했을때도 마찬가지로 진행해준다.

p[N-1]을 보게되면 결국 겹치지 않게 페인트칠을 해주었을때 비용의 값이 저장되는데 여기서 비용이 가장 작은 값을 cost값에 넣어줘 답으로 출력하면 된다.

0개의 댓글