728x90

나의 풀이
def solution(money):
dp1, dp2 = [money[0], money[0]], [0, money[1]]
for i in range(2, len(money) - 1):
dp1.append(max(dp1[i - 1], dp1[i - 2] + money[i]))
dp2.append(max(dp2[i - 1], dp2[i - 2] + money[i]))
return max(dp1[-1], max(dp2[-1], dp2[-2] + money[-1]))
배열을 이용하지 않은 풀이
def solution(a):
x1, y1, z1 = a[0], a[1], a[0]+a[2]
x2, y2, z2 = 0, a[1], a[2]
for i in a[3:]:
x1, y1, z1 = y1, z1, max(x1, y1)+i
x2, y2, z2 = y2, z2, max(x2, y2)+i
return max(x1, y1, y2, z2)반응형
'Coding Test > Programmers' 카테고리의 다른 글
| [프로그래머스/파이썬] 네트워크 (0) | 2022.06.08 |
|---|---|
| [프로그래머스/파이썬] 타겟 넘버 (0) | 2022.06.07 |
| [프로그래머스/파이썬] 등굣길 (0) | 2022.06.07 |
| [프로그래머스/파이썬] 정수 삼각형 (0) | 2022.06.07 |
| [프로그래머스/파이썬] N으로 표현 (0) | 2022.06.07 |