Problem Solving

boj 10835 : 카드게임

1ssrek 2016. 8. 11. 11:19

boj 10835 : 카드게임


이것도 간단한 DP문제.


a : 왼쪽카드뭉치 수열

b : 오른쪽 카드뭉치 수열

f(i, j) : 왼쪽 i번째, 오른쪽 j번째 카드일 때의 앞으로 얻을 수 있는 최대값

이렇게 두면.


1. f(i, j) = max( f(i + 1, j + 1), f(i + 1, j), f(i, j + 1) + b[j])

1.1 f(i + 1, j + 1) : 카드를 둘다 버릴 때

1.2 f(i + 1, j) : 왼쪽 뭉치만 버릴 때

1.3 f(i, j + 1) + b[j] : 오른쪽 뭉치만 버릴 때(이때는 왼쪽 카드보다 오른쪽 카드 값이 작아야함)