[알고리즘] 동적 계획법(DP) - TIC-TAE-TOE(3목)
TIC-TAE-TOE는 서양식 오목으로 이해하기 쉽게 말하면 3목이다. 가로든 세로든 대각선으로 든 돌 세 개를 먼저 잇는 사람이 승리한다. 3x3 보드에 각 플레이어의 돌을 'o'와 'x'로 두고 어떤 플레이어가 승리하는지 확인하는 코드를 볼 것이다. board = vector { {'o', 'x', 'x'}, {'.', 'o', '.'}, {'o', '.', '.'} }; for (int i = 0; i < 19683; i++) cache[i] = DEFAULT; 보드는 2차원 벡터 형태로 만들고 cache를 19683개까지 저장하게 했다. 이 오묘한 숫자의 의미는 3^9이다. 보드 한칸에 빈 경우, o의 돌이 놓여있는 경우, x의 돌이 놓여있는 경우 세가지가 있을 수 있고 총 9칸이기 때문에 3을 ..