๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐Ÿฆ• ๊ณต๋ฃก์ด ๋˜์ž!

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]Python ์ •์ˆ˜ ์‚ผ๊ฐํ˜• ๋ณธ๋ฌธ

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])])
๋ฐ˜์‘ํ˜•
Comments