*퀸은 세로, 가로, 대각선에 있는 말을 한 번에 공격할 수 있으므로, 한 줄에 한 개씩만 배치될 수 있다.
즉, 최대 n개의 말만 배치될 수 있다. (종료조건)
*맨 윗 칸에 퀸을 한 개씩 놓아보면서 dfs를 통해 모든 경우를 살펴본다.
[0][0] 에 퀸이 놓였으면 이제 각 줄의 [0]번째 칸에는 퀸이 놓일 수 없다. (chk[0] = true를 해서 구별했다)
*check(x, y, n)에서 현재 칸에서 왼쪽 위 대각선, 오른쪽 위 대각선을 살펴보면서 퀸을 놓을 수 있는지 확인한다.
*놓을 수 있다면 퀸을 놓고, 다음 줄을 본다. (백트래킹)
'Programmers > 프로그래머스' 카테고리의 다른 글
[Programmers] 문자열 압축 (0) | 2020.04.04 |
---|---|
[Programmers] 가장 긴 팰린드롬 (0) | 2020.04.03 |
[Programmers] 방문 길이 (0) | 2020.04.03 |
[Programmers] 종이접기 (0) | 2020.04.03 |
[Programmers] 등굣길 (0) | 2020.04.02 |