-코드
n = int(input())
arr = [0] * 300
for i in range(n):
arr[i] = int(input())
dp = [arr[0], arr[0] + arr[1], max(arr[1] + arr[2], arr[0] + arr[2])]
for i in range(3, n):
result = max(dp[i-3] + arr[i-1] + arr[i], dp[i-2] + arr[i])
dp.append(result)
print(dp[n - 1])
처음에 문제를 보고 이해는 되는데 수식을 못 찾아서 며칠 생각을 해보고 수식이 떠오르지 않아 기본 수식을 찾았고 코딩을 하는데 arr을 append형식으로 짰으나 3 이하일 경우 문제가 생겨서 다시 선언을 하여서 해결을 하였습니다.
'Beakjoon&프로그래머스 > 파이썬' 카테고리의 다른 글
[백준/파이썬] 11053번 가장 긴 증가하는 부분 수열 (0) | 2021.12.16 |
---|---|
[백준/파이썬] 1076번 저항 (0) | 2021.12.16 |
[백준/파이썬] 1788번 피보나치 수의 확장 (0) | 2021.12.15 |
[백준/파이썬] 7770번 아즈텍 피라미드 (0) | 2021.12.15 |
[백준/파이썬] 8892번 팰린드롬 (0) | 2021.12.14 |