백준 :: 포도주 시식 <2156번>

혜 콩·2022년 8월 28일
0

알고리즘

목록 보기
53/61

> 문제 <


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

> 아이디어 <


clone

> 코드 <

import sys
input = sys.stdin.readline

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

dp = [0] * 10001
dp[1] = podo[1]
if n >= 2:
    dp[2] = podo[1] + podo[2]


if n >= 3:
    for i in range(3, n+1):
        dp[i] = max(dp[i-1], dp[i-2] + podo[i], dp[i-3]+podo[i-1]+podo[i])


print(dp[n])

n <= 2인 경우에 자칫하면(dp[2] 설정 부분) IndexError가 떠서 미리 dp print를 해주고 exit(0)를 설정했지만, 비정상 강제 종료라 그런지 시간이 더 오래 걸리는 것을 확인! 차라리 위의 코드처럼 if문 걸어주는게 낫다


sys.stdin.readline의 중요성...

88ms로 단축!

profile
배우고 싶은게 많은 개발자📚

0개의 댓글