숫자 게임
Problem
https://www.algospot.com/judge/problem/read/NUMBERGAME
Idea
게임의 상태가 변경된다 A와 B 게임 순서가 존재 A와 B중 누가 이기는가 A와 B 게임 점수차가 최대인 경우
A 차례의 게임 상태에 따른 최대 점수차 = 이전의 B 차례의 게임 상태에 따른 최대 점수차 + 게임 상태 변경 delta
f(state): 현재 게임판 상태에 따른 두사람의 최대 점수 차 로 정의 한다면:
A차례 일 경우 A 최대값 = A 선택 - B 최대값
직전의 B 차례의 일 경우 B 최대 값 = B 선택 - A의 최대 값 = -f(state)
f(1, n) = max (
board(0,1) - f(2, n), // 가장왼쪽 선택
board(n-1, n) - f(1, n-1), // 가장 오른쪽 선택
0 - f(3, n), // 왼쪽 2개 제거 if (n-1 >= 1) // 버리는 카드니 점수에 영향없음
0 - f(1, n-2) // 오른쪽 2개 제거 if (n-1 >= 1)
)