Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
afnan47
GitHub Repository: afnan47/sem7
Path: blob/main/DAA Python/5_n_queens.py
418 views
1
def n_queens(n):
2
col = set()
3
posDiag=set() # (r+c)
4
negDiag=set() # (r-c)
5
6
res=[]
7
8
board = [["0"]*n for i in range(n) ]
9
def backtrack(r):
10
if r==n:
11
copy = [" ".join(row) for row in board]
12
res.append(copy)
13
return
14
15
for c in range(n):
16
if c in col or (r+c) in posDiag or (r-c) in negDiag:
17
continue
18
19
col.add(c)
20
posDiag.add(r+c)
21
negDiag.add(r-c)
22
board[r][c]="1"
23
24
backtrack(r+1)
25
26
col.remove(c)
27
posDiag.remove(r+c)
28
negDiag.remove(r-c)
29
board[r][c]="0"
30
backtrack(0)
31
for sol in res:
32
for row in sol:
33
print(row)
34
print()
35
36
if __name__=="__main__":
37
n_queens(8)
38