# info : 인덱스, 값 = 행,몇번째 인덱스에 1 넣었는지
def check(info,turn):
global N,cnt
if turn == N: # 종료조건 : 마지막행까지 다 퀸을 다 놓고 넘어왔는지
cnt += 1
return
tmp = [0]*N
for i in range(len(info)):
# 열 조건
tmp[info[i]] = 1
# 왼쪽 대각선 조건
if info[i]-(turn-i)>=0:
tmp[info[i]-(turn-i)] = 1
# 오른쪽 대각선 조건
if info[i]+(turn-i)<N:
tmp[info[i]+(turn-i)] = 1
for j in range(N):
if tmp[j] == 0:
check(info+[j],turn+1)
for tc in range(int(input())):
N = int(input())
cnt = 0
check([],0)
print("#{} {}".format(tc+1,cnt))
'Problem Solving > SWEA' 카테고리의 다른 글
[ SWEA ] D3 - 5603, 4299, 11736, 11856 - python 문제풀이 (0) | 2021.07.14 |
---|---|
[ SWEA ] D3 - 1493 수의 새로운 연산 - python 문제풀이 (0) | 2021.07.13 |
[ SWEA ] D3 - 1221, 10912, 4676 - python 문제풀이 (0) | 2021.07.13 |
[ SWEA ] D3 - 3499, 5162, 1206, 5356 - python 문제풀이 (0) | 2021.07.13 |
[ SWEA ] D3 - 10804, 10200, 6692, 5789 - python 문제풀이 (0) | 2021.07.08 |
댓글