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])])반응형
'Coding Test > Programmers' 카테고리의 다른 글
| [프로그래머스/파이썬] 도둑질 (0) | 2022.06.07 |
|---|---|
| [프로그래머스/파이썬] 등굣길 (0) | 2022.06.07 |
| [프로그래머스/파이썬] N으로 표현 (0) | 2022.06.07 |
| [프로그래머스/파이썬] 단속카메라 (0) | 2022.06.07 |
| [프로그래머스/파이썬] 섬 연결하기 (0) | 2022.06.07 |