[백준] 2156번 : 포도주 시식 (파이썬)

뚝딱이 공학도·2022년 6월 8일
0

문제풀이_백준

목록 보기
144/159



문제



나의 첫번째 답안(런타임 에러)

n=int(input())
arr=[0]
for _ in range(n):
    arr.append(int(input()))

dp=[0,arr[1],arr[1]+arr[2]]
for i in range(3,n+1):
    s=max(dp[i-1],dp[i-3]+arr[i-1]+arr[i],dp[i-2]+arr[i])
    dp.append(s)
print(dp[n])

런타임에러라는 결과가 도출되었다.
https://www.acmicpc.net/board/view/81147 를 참고해 수정하였다.

나의 답안(정답)

n=int(input())
arr=[0]
for _ in range(n):
    arr.append(int(input()))

dp=[0,arr[1]]
if n>1:#n이 1이면 arr[1]+arr[2]는 존재x
    dp.append(arr[1]+arr[2])
    
for i in range(3,n+1):
    s=max(dp[i-1],dp[i-3]+arr[i-1]+arr[i],dp[i-2]+arr[i])
    dp.append(s)
print(dp[n])

0개의 댓글