파이썬
import sys
n = int(sys.stdin.readline())
ans = 0
row = [0] * n
def is_promising(x):
for i in range(x):
if (row[x] == row[i]) or (abs(row[x] - row[i]) == abs(x-i) ):
return False
return True
def n_queens(x):
global ans
if x == n :
ans += 1
return
else :
for i in range(n):
row[x] = i
if is_promising(x):
n_queens(x+1)
n_queens(0)
print( ans)
# 참고 : https://seongonion.tistory.com/103
자세한 풀이 🔜 https://seongonion.tistory.com/103
'알고리즘 > 백준 ~ 단계별 풀어보기' 카테고리의 다른 글
[다시 풀어보기] 백준 14888번 "연산자 끼워넣기" (0) | 2022.08.15 |
---|---|
백준 15652번 "N과 M (4)" (0) | 2022.08.15 |
백준 15651번 "N과 M(3)" (0) | 2022.08.15 |
백준 15650 "N과 M (2)" (0) | 2022.08.15 |
백준 15649번 "N과 M" (0) | 2022.08.15 |