https://www.acmicpc.net/problem/2156

Baekjoon Online JudgeBaekjoon Online Judgewww.acmicpc.net



이게 내 코드고

n = int(input())

nums = [0] + [int(input()) for _ in range(n)]


if n <= 2:

print(sum(nums))

else:

dp = [0 for _ in range(n+1)]

dp[1], dp[2] = nums[1], nums[1] + nums[2]

for i in range(3, n+1):

dp_1 = dp[i-3] + nums[i-1] + nums[i]

dp_2 = dp[i-2] + nums[i]

dp[i] = max(dp_1, dp_2, dp[i-1])

print(dp[-1])


이건 블로그에서 긁어온 코드거든

n = int(input())

wine = [0]

for i in range(n):

wine.append(int(input()))


dp = [0] * (n+1)

dp[1] = wine[1]

if n > 1:

dp[2] = wine[1] + wine[2]


for i in range(3, n+1):

dp[i] = max(dp[i-2]+wine[i], dp[i-1], dp[i-3]+wine[i-1]+wine[i])

print(dp[n])


둘이 완전히 똑같은 코드 같은데 내껀 틀리고 긁어온건 정답 나옴... 왜지???