다차원 배열의 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() 꼭!