heheh
히히
heheh
전체 방문자
오늘
어제
  • 히히 (75)
    • AI (14)
      • Model (Study) (3)
      • Model (Paper) (7)
      • Tip! (4)
    • Backend (3)
      • ASP.NET (1)
      • Spring (2)
      • program (0)
      • JAVA (0)
    • Program (11)
      • Docker (3)
      • Github (5)
      • AWS (3)
    • OS (1)
      • Window (1)
      • Linux (0)
    • Python (14)
      • Python Lib (11)
      • Pytorch (1)
      • Tensorflow (1)
      • 크롤링 (1)
    • Spark (3)
      • Scala (2)
      • Pyspark (0)
      • SQL (1)
    • IOS (Swift) (0)
      • 기본 개념 (0)
    • 프로젝트 (3)
      • [AI] GAN (0)
      • [IOS] Swift (3)
      • [AI] 추천시스템 (0)
    • 분석 (1)
    • 알고리즘 풀이 (22)
      • 백준 (22)
    • 기타 (3)
      • 장비세팅 (3)
      • 소개 (0)

인기 글

최근 글

최근 댓글

hELLO · Designed By 정상우.
heheh

히히

알고리즘 풀이/백준

백준 2156번 : 포도주 시식 (Python)

2021. 2. 4. 17:42

문제 : www.acmicpc.net/problem/2156

 

2156번: 포도주 시식

효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규

www.acmicpc.net

 

풀이

A에 포도주 양을 입력받는다.

dp에 해당 위치 포도주를 마셨을 경우의 최대 양을 저장한다.

연속 3잔을 마실 수 없으므로 가능한 경우는

① 현재 포도주 + 현재-2 까지의 dp중 최대값  (1개 연속)

② 현재 포도주 + 현재-1 포도주 + 현재-3 까지의 dp중 최대값  (2개 연속)

이렇게 두가지이다.

최종적으로 가장 큰 dp값을 출력한다.

 

n = int(input())
A = []
for i in range(n):
    A.append(int(input()))

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

dp[0] = A[0]
if n>1:
    dp[1] = A[0]+A[1]
if n>2:
    dp[2] = max(A[2]+A[0], A[2]+A[1])

for i in range(3,n):
    dp[i] = max( A[i]+max(dp[0:i-2+1]), A[i]+A[i-1]+max(dp[0:i-3+1]) )

print(max(dp))

'알고리즘 풀이 > 백준' 카테고리의 다른 글

백준 9461번 : 파도반 수열 (Python)  (0) 2021.02.06
백준 1932번 : 정수 삼각형 (Python)  (0) 2021.02.04
백준 11053 : 가장 긴 증가하는 부분 수열 (Python)  (0) 2021.02.04
백준 11726번 : 2xn 타일링 (Python)  (0) 2021.02.04
백준 1003번 : 피보나치 함수 (Python)  (0) 2021.02.04
    heheh
    heheh

    티스토리툴바