다차원 배열의 Deep copy가 핵심!
인덱스 처리하기 귀찮아서, Top-Down 방식으로 풀었다.
하지만 계속 오류가 났는데, triangle을 result에 복사할 때, Shallow copy가 일어나서 triangle도 같이 계속 수정되고 있었기 때문 ㅠㅠ
2차원 이상의 배열은
copy패키지를 이용하여 deepcopy 해야 한다. 출처 - 파이썬 코딩 도장
def solution(triangle):
answer = 0
height = len(triangle)
# 중요! 다차원의 깊은복사는 copy 패키지 사용해야 함
import copy
results = copy.deepcopy(triangle)
for i in range(height-1):
for j in range(i+1):
results[i+1][j] = max(results[i][j]+triangle[i+1][j], results[i+1][j])
results[i+1][j+1] = max(results[i][j]+triangle[i+1][j+1], results[i+1][j+1])
answer = max(results[height-1])
return answer
기초가 탄탄해야 하는 이유 ㅎ.ㅎ 담부터는 copy.deepcopy() 꼭!