Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 3단계 지역 DB
- 행정지역 DB
- riceteacatpanda
- 정보보호병 후기
- 네이버 인턴
- frontend
- 소프트웨어 개발보안 경진대회
- 방명록 만들기
- restapi
- SessionAttribute
- webhacking 처음
- Forensic 절차
- react
- spring
- 소개딩
- 메모리 포랜식
- DBMS
- Database
- jsp
- 인턴 후기
- reversing.kr
- PyAmdecoder
- ㅁㅇㅂ??ㅇㅈㄷ ㅎㅇㅌ...
- JSTL
- EER
- 동읍면 DB
- Layered Architecture
- 인턴 지원
- Django
- mysql
Archives
- Today
- Total
웹찢남
[백준 2156 포도주 시식 문제] PYTHON 본문
이번 문제는 전에 포스팅한 2579 계단 오르기 문제와 거의 같다.
기존의 코드에 추가된 요소를 몇개 추가했다.
첫번째로 생각해야하는것은 마지막 잔을 전과 달리 마시지 않아도 된다.
두번째로는 꼭 마시지않은 후에는 마셔야할 의무가 없다.
다음과 같이 코드를 짤 수 있다.
N = int(input())
cost= []
dp = [0 for i in range(N)]
for _ in range(N):
cost.append(int(input()))
if(N==1):
print(cost[0])
elif(N==2):
print(cost[0]+cost[1])
elif(N==3):
print(max(cost[0]+cost[2],cost[1]+cost[2],cost[0]+cost[1]))
else:
dp[0]=cost[0]
dp[1]=cost[0]+cost[1]
dp[2]=max(cost[0]+cost[2],cost[1]+cost[2],cost[0]+cost[1])
for i in range(3,N):
dp[i]=max(dp[i-1],dp[i-3]+cost[i]+cost[i-1],dp[i-2]+cost[i])
print(dp[N-1])
'백준 Algorithm' 카테고리의 다른 글
[백준 2748 피보나치 수 2 문제] PYTHON (0) | 2021.04.15 |
---|---|
[백준 11053 가장 긴 증가하는 부분 수열 문제] PYTHON (0) | 2021.04.15 |
[백준 10870 피보나치 수 5 문제] PYTHON (0) | 2021.04.15 |
[백준 1932 정수 삼각형 문제] PYTHON (0) | 2021.04.15 |
[백준 2579 계단 오르기 문제] PYTHON (0) | 2021.04.15 |
Comments