D[i] = 돌의 개수가 i개 일 때, 이기는 방법이 있는 경우 O, 아니면 X
i=0 일 때 가져갈 수 있는 돌이 없음
i=1 일 때 1개 가져갈 수 있음
i=2 일 때 2개 가져갈 수 있음
i=3 일 때부터 중요한데
i=4 로 예를 들어보면,
한 칸 앞인 i=3일 때는 X이다.
내가 1개를 가져가면 3개가 남을텐데 이 때 상대가 바둑돌 1개를 가져가든, 2개를 가져가든 남는 바둑돌이 있어서 내 차례에 동작을 할 수 있다.
그래서 i=4일 때 내가 1개를 가져가면 내가 이길 수 있다.
반면, 두 칸 앞인 i=2일 때는 O이다.
내가 2개를 가져가면 2개가 남고 상대가 충분히 똑똑하면 당연히 남은 2개를 다 가져갈 것이기 때문에 내가 다음에 할 동작이 없다. 그래서 i=4일 때 내가 2개를 가져가면 이길 수 없다.
위에서 i=5인 경우를 보면 다음과 같이
X가 하나 있기 때문에 내가 3개를 가져가면 이길 수 있는 게임이 된다.
D[i-1] = D[4] = O
D[i-3] = D[2] = X
D[i-4] = D[1] = O