
출처: 백준 9663번 N-Queen
문제에 적혀있는 힌트는 문제와 큰 상관없는 제출자의 조크 같습니다.

퀸을 서로 공격할 수 없게 체스판에 둘려면, 2가지 조건을 만족해야 한다.
리스트를 하나 생성하고, 각 인덱스를 행을 표시하는 것으로, 들어있는 값을 열을 표시하는 것으로 사용한다.
1번 조건은 리스트에 들어있는 값들을 비교하면 된다.
2번 조건은 인덱스 간의 차이가 리스트에 들어있는 값들의 차이와 같은지 비교하면 된다.
Python 3로 제출할 경우, 시간 초과가 되니PyPy3로 제출해야 한다.
num = int(input())
count = 0
chess = []
def check(n):
for i in range(n):
if (chess[n] == chess[i]) or (abs(chess[n] - chess[i]) == n-i):
return False
return True
def queen(n):
global count
if n==num:
count += 1
return
for i in range(num):
chess.append(i)
if check(n):
queen(n+1)
chess.pop()
queen(0)
print(count)