-다이나믹 알고리즘
n = int(input()) # 행
m = 3 # 열
d = []
# 그래프 만들기
for i in range(n):
d.append(list(map(int,input().split())))
for i in range(1, n):
for j in range(m):
if j == 0:
d[i][j] = d[i][j] + min(d[i - 1][j + 1], d[i - 1][j + 2])
if j == 1:
d[i][j] = d[i][j] + min(d[i - 1][j - 1], d[i - 1][j + 1])
if j == 2:
d[i][j] = d[i][j] + min(d[i - 1][j - 1], d[i - 1][j - 2])
print(min(d[n-1][0],d[n-1][1],d[n-1][2]))
동빈나 DF 강의에서의 예제와 접근 방식이 비슷해서 비교적 쉽게 풀었다
'알고리즘' 카테고리의 다른 글
<백준> 1292번 파이썬 알고리즘 (0) | 2021.07.03 |
---|---|
<백준> 1978번 파이썬 알고리즘 (0) | 2021.07.03 |
<백 준> 1149번 파이썬 알고리즘 (0) | 2021.01.13 |
<백 준> 11726번 파이썬 알고리즘 (0) | 2021.01.13 |
<백 준> 1003번 파이썬 알고리즘 (0) | 2021.01.13 |