Development/CodingTest

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€]Python μ •μˆ˜ μ‚Όκ°ν˜•

Kirok Kim 2022. 1. 31. 23:53
풀이 1
def solution(triangle):
    answer=0
    
    result=[ [] for i in range(len(triangle))]
    
    result[0].append(triangle[0]) # 0
    result[1].append(triangle[0][0]+triangle[1][0])
    result[1].append(triangle[0][0]+triangle[1][1]) # 1
    result[2].append(result[1][0]+triangle[2][0])
    result[2].append(max(result[1][0]+triangle[2][1],result[1][1]+triangle[2][1]))
    result[2].append(result[1][1]+triangle[2][2]) # 2
    # μœ„μ— μžˆλŠ” μ˜ˆμ‹œλ“€μ€ 0λ§κ³ λŠ” ν•„μš”μ—†μŒ
    for i in range(3,len(triangle)):
        for j in range(len(triangle[i])):
            if j==0: #첫번쨰
                result[i].append(result[i-1][j]+triangle[i][j])
            elif j==len(triangle[i])-1: #λ§ˆμ§€λ§‰κΊΌ
                result[i].append(result[i-1][j-1]+triangle[i][j])
            else: #λ‚˜λ¨Έμ§€λ“€
                result[i].append(max(result[i-1][j-1]+triangle[i][j], result[i-1][j]+triangle[i][j]))
    answer= max(result[-1])
    return answer
ν•œ 쀄 μ½”λ“œ...(뢄석쀑)
solution = lambda t, l = []: max(l) if not t else solution(t[1:], [max(x,y)+z for x,y,z in zip([0]+l, l+[0], t[0])])
λ°˜μ‘ν˜•