dp는 쓸까하다가 까딱 잘못하면 메모리 터질거같기도 했고 정확성 10분은 넉넉해서 그냥 안썼음



solve(board, myloc, enemyloc)으로 재귀돌림
반환형은 bool isWin, int pathCount


1) 나랑 상대방이랑 같은 발판에 있을때 내가 움직이면 승리하므로 (true, 1) 반환

2) 내가 움직일 수 있는 발판이 하나도 없으면 패배하므로 (false, 0) 반환

3) 내가 움직일 수 있는 발판들 배열을 순회하면서
solve(nextBoard, enemyloc, myNextloc) 이거 다 가져옴

4) 3에서 가져온 solve 결과값 중에 isWin=false가 하나라도 있으면 상대방이 무조건 패배하는 수가 있다는 소리이므로 나는 무조건 승리함. 이 경우 가장 빠르게 이기는 경로를 선택해 주면 됨. 따라서 false인 경로중 pathCount가 가장 작은 경로를 택해서 +1해주고 반환함.

5) isWin=false가 하나도 없다면 나는 무조건 패배한다는 소리이므로 가장 느리게 지는 경로를 선택하면 됨. 그 경로의 pathCount를 +1해서 반환함.

6) solve(initBoard, aloc, bloc) 하면 끝

- dc official App