4주차 과제 4.포도주 시식 BEST 풀이

성호창·2021년 5월 7일
0
post-thumbnail

베스트 풀이 링크

베스트 풀이코드- hongcheol님

import sys
wine = [0]*10010
dp = [0]*10010

n = int(sys.stdin.readline())

for i in range(1,n+1):
    wine[i] = int(sys.stdin.readline())

dp[1] = wine[1]
if n == 1:
    print(dp[1])
else:
    dp[2] = wine[2]+wine[1]
    if n == 2:
        print(dp[2])
    else:
        for i in range(3,n+1):
            result = max(wine[i]+dp[i-2],dp[i-1],wine[i]+wine[i-1]+dp[i-3])
            dp[i] = result
        print(dp[n])

베스트 풀이 선정 이유

dp문제는 문제 풀이 방법을 생각하고 이를 점화식으로 표현하는 것이 중요합니다. hongcheol님은 가능한 경우의 수를 모두 생각하고 이를 점화식으로 깔끔하게 옮겨 코드를 작성했기 때문에 베스트 풀이로 선정했습니다. 그리고 dp를 풀 때 "dp풀이는 어떤 식으로 시작하면 되겠다"라는 자신만의 깨달음을 얻으셨기 때문입니다.

느낀점

문제에 대한 분석을 정확하게 하고 코드로 옮겨야 실수가 발생하지 않는다고 생각하게 되었습니다.

0개의 댓글

관련 채용 정보