포도주 시식은 포도주를
첫번째로 마시는 경우,
두번째로 마시는 경우,
마시지 않는 경우로 나누어서 생각하면 해결할 수 있다.
6개의 와인잔이 1000, 900, 2, 1, 800, 700 의 순서로 놓여져 있는 경우 다음과 같이 생각할 수 있다.
순서 |
1 |
2 |
3 |
4 |
5 |
6 |
첫 번째로 마시는 경우 |
1000 |
900 |
1002 |
1901 |
2700 |
2601 |
두 번째로 마시는 경우 |
0 |
1900 |
902 |
1003 |
2701 |
3400 |
마시지 않는 경우 |
0 |
1000 |
1900 |
1900 |
1901 |
2701 |
3번의 경우에
첫 번째로 마시는 경우는 이전에 마시지 않는 경우에서 자신을 더하는 것이다. -> 1000 + 2 = 1002
두 번째로 마시는 경우는 이전에 첫번째로 마시는 경우에 자신을 더하는 것이다. -> 900 + 2 = 902
마시지 않는 경우는 이전의 모든경우 중 최대값이다. -> 900, 1900, 1000 중에서 최대값 1900 이 된다.
이를 반복하면 문제를 해결 할 수 있다.
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준][위상정렬, DAG] 2252 줄세우기 (0) | 2017.06.20 |
---|---|
[백준][다이나믹] 1520 내리막길 (0) | 2017.06.20 |
[백준] 1003 피보나치 함수 (0) | 2017.06.01 |
[백준] 1932 숫자삼각형 (0) | 2017.05.31 |
[백준][DP] 9251 LCS 알고리즘 (3) | 2017.04.20 |