알고리즘/프로그래머스

[파이썬][프로그래머스] 동적계획법(Dynamic Programming) 정수 삼각형

SBOX Learning by doing 2023. 1. 3. 21:35
반응형

def solution(triangle):
    answer = 0
    reversed(triangle)
    temp = []
    for i in range(len(triangle)-1, -1, -1):
        
        # temp 값 더한후 
        if temp != []:
            t = sumT(triangle[i], temp)
        else:
            t = triangle[i]
        # 원소가 2개 이상이라면 temp 값 구하기
        if len(t) != 1:
            maxT = findMax(t)
            
        # temp가 있으면 에 최대 값 저장
        temp = maxT
        
        # 만약 1개면 리턴
        if len(t) == 1:
            return answer + t[0]
    return answer

def sumT(t, temp):
    answer = []
    for i in range(len(t)):
        answer.append(t[i]+temp[i])
    return answer

def findMax(t):
    answer = []
    for i in range(len(t)-1):
        answer.append(max(t[i], t[i+1]))
    return answer 

반응형