오늘 하루
- 알고리즘 N-Queens 스프린트를 시작했다. 말 그대로 N-Queens 알고리즘을 구현하는 과제다. n*n배열에 퀸이 n개 있을 때 서로가 서로에 한번에 도달할 수 없는 경우의 수를 구하는 알고리즘이다. 알다시피 체스에서 퀸은 가로,세로,대각선으로 움직인다. n개의 퀸이 모두 서로에게 한 번에 도달할 수 없는 경우, 즉 서로 충돌하지 않는 경우의 수가 몇 개가 있을 수 있는지 구해야 한다.
- 오늘은 n*n 배열이 주어졌을 때 이 안에 행(row),열(column), (반)대각선(diagonal) 충돌이 있는지 확인하는 메소드들을 작성했다. 내일은 이 메소드들을 이용해서 N-Queens의 본격적인 문제들을 풀게 된다. 기본적으로 트리 구조에 깊이우선탐색(DFS)를 이용해 노드들을 탐색하는 방식으로 구현을 해보려고 생각 중인데, 사실 아직 내가 말하면서도 정확히 어떻게 구현해야 할지 잘 모르겠다. 내일 문제를 풀어보고 실제로 부딪히면서 자료구조를 문제해결과정에서 어떻게 사용될 수 있을지 알아봐야겠다. 그리고 가능하다면 이번주 내에 DFS와 BFS에 대해 블로깅해야겠다.