본문 바로가기

코딩테스트

[백준(Baekjoon) 9663번](Python) N-Queen

 

<내 코드>

 

<풀이과정>

레벨(깊이)을 하나씩 늘려나가면서 재귀적으로 가능한 배치에 대해서 탐색한다. 즉, 어떤 레벨에서 퀸의 위치를 x라고 하면,

해당 레벨 전까지 퀸의 위치가 x인 점이있는지 체크하고, 해당 레벨 전까지 퀸의 위치가 해당 레벨의 퀸의위치의 대각선 상에 위치 한 점이 있는지를 체크해서 이 두가지 모드 아닐 경우에만 해당 레벨에서 퀸의 위치는 x가 되므로 그 위치 x와 그앞전의 지점들의 좌표를 유지한 채로 반복문을 돈다. 즉 ans가 +되는 경우는 모든 말들이 서로서로 영향을 받지 못하는 위치에 있다는 말이 된다.

 

<느낀점>

재귀를 이용한 dfs와 backtracking에 대하여 더 공부할 수 있는 좋은 문제였다.