[프로그래머스 | DP] 정수 삼각형 - Python

·2022년 1월 13일
0

프로그래머스

목록 보기
9/11

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

profile
튼튼

0개의 댓글