[Algorithm] 9095 1149 2156 백준 파이썬

Jifrozen·2021년 8월 8일
0

Algorithm

목록 보기
41/70

9095

t = int(input())
dp = [1, 2, 4]
for i in range(3, 10):
    dp.append(dp[i - 1] + dp[i - 2] + dp[i - 3])
for j in range(t):
    n = int(input())
    print(dp[n - 1])

1149

n = int(input())

data = [list(map(int, input().split())) for _ in range(n)]

for j in range(1, len(data)):
    data[j][0] = data[j][0] + min(data[j - 1][1], data[j - 1][2])
    data[j][1] = data[j][1] + min(data[j - 1][0], data[j - 1][2])
    data[j][2] = data[j][2] + min(data[j - 1][1], data[j - 1][0])

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

2156

코드를 입력하세요

1개의 댓글

comment-user-thumbnail
2021년 8월 8일

다이나믹 프로그래밍이 코드는 간결한데 그 아이디어를 떠올리는게 쉽지 않네요,, 이제 겨우 느낌만 알 것 같아요 이번주 수고 많으셨습니다~

답글 달기