๋ฐฑ์ค 9663๋ฒ
n = int(input())
queen_li = [0] * n
count = 0
def back(x):
for i in range(x):
if queen_li[x] == queen_li[i] or abs(queen_li[x] - queen_li[i]) == abs(x - i):
# ํธ์ ์ด๋ ๊ท์น -> ๊ฐ๋ก, ์ธ๋ก, ๋๊ฐ์ ์ ๋ง๋ ์์น์ ๋ค์ ํธ์ ๋ฃ์ ์ ์๋ ์กฐ๊ฑด์ผ๋ก ํ๋จ
return False
return True
'''
n = 3 ๐
[0,0][0,1][0,2]
[1,0][1,1][1,2]
[2,0][2,1][2,2]
'''
def queen(x=0):
global count
if x == n:
count += 1
return
for y in range(n):
queen_li[x] = y # [x, y]์ queen ์์น [0,0]->[0,1]->[0,2]
if back(x): #
queen(x+1) # ๋ค์ ์ด์ queen ๋์ ์ ์๋ ์ง ํ์ธ
queen()
print(count)
๋ฐฑํธ๋ํน์ ์ด์ฉํ์ฌ ํด๊ฒฐํ๋ ๋ฌธ์ ์์ง๋ง ๊ฒฐ๊ตญ ๊ฒ์ํ์ฌ ํด๊ฒฐํ์์ต๋๋ค.
๋ฐฑํธ๋ํน์ ๊ดํ ์๊ณ ๋ฆฌ์ฆ์ ๋์ฑ ํ์ด๋ณด๋ฉด์ ํ์ต์ ํด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค.