본문 바로가기

Coding Test/Programmers

[프로그래머스/파이썬] 정수 삼각형

728x90

 

 

나의 풀이

def solution(triangle):
    for floor in range(len(triangle)):
        if floor == 0:
            continue
        for idx in range(len(triangle[floor])):
            if idx == 0:
                triangle[floor][idx] += triangle[floor - 1][0]
            elif idx + 1 == len(triangle[floor]):
                triangle[floor][idx] += triangle[floor - 1][-1]
            else:
                triangle[floor][idx] += max(triangle[floor - 1][idx - 1], triangle[floor - 1][idx])
    return max(triangle[-1])

 

 

람다식 재귀를 활용한 풀이

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])])
반응형