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
- COSPRO
- 엘라스틱서치
- 취득후기
- 시뮬레이션
- BFS
- spring
- dp
- YBMCOS
- 게더타운시작
- 자바PS
- deque
- DFS
- COSPROJAVA1급
- 백준
- QUICKSTARTGUIDE
- 이젠 골드구현도 어렵네..
- 세그먼트트리
- 재귀함수
- PS
- 다익스트라
- 알고리즘
- 01BFS
- 다이나믹프로그래밍
- 네트워크플로우
- GatherTown
- 구현
- 우선순위큐
- 완전탐색
- 백준코딩테스트
- java
Archives
- Today
- Total
공부공간
BOJ - 2156 ) 포도주 시식 본문
수열에서 연속되지 않은 3개 미만의 수를 고르면서 최댓값을 출력하는 문제이다.
DP로 풀기위해서 점화식을 세워보니, 조건에서 연속하는 3개의 포도주는 마실수 없다고 제시하였다.
따라서
1. 현재 포도주를 마시지 않을경우 (DP[n-1])
2. 현재 포도주는 마시고 바로 직전 포도주는 안마신경우 즉 n-2까지는 최대인경우 ( DP[n-2] + num[n] )
3. 현재포도주와 직전포도주까지 마시고 연속해서 3잔은 못마시기때문에 n-3까지는 최대인경우
( DP[n-3] + num[n] + num[n-1] )
이 3가지중에 가장 큰 값을 DP[n]으로 선택하여서 업데이트 해주면 된다.
N <=3 이하인 경우에는 점화식의 범위가 넘어가서 수동으로 처리해주었다.
'알고리즘 > Dynamic Programming' 카테고리의 다른 글
BOJ - 1932 ) 정수 삼각형 (0) | 2019.12.15 |
---|---|
BOJ - 2579 ) 계단오르기 (0) | 2019.12.15 |
BOJ - 11048 ) 이동하기 (0) | 2019.12.15 |
BOJ - 1937 ) 욕심쟁이 판다 (0) | 2019.12.12 |
BOJ- 1463 ) 1로 만들기 (0) | 2019.12.11 |
Comments