Backtracking N Queens
Backtracking N Queens
PROGRAMMING,
DATA STRUCTURES AND
ALGORITHMS IN PYTHON
Week 6, Lecture 1
If we hit a dead-end
N = 2, 3 impossible
N queens
N = 2, 3 impossible
N queens
N = 2, 3 impossible
Q
N = 4 is possible Q
Q
Q
N queens
N = 2, 3 impossible
Q
N = 4 is possible Q
Q
And all bigger N as well Q
8 queens
Clearly, exactly one queen
in each row, column
… but systematically!
Coding the solution
How do we represent the board?
n x n attack grid
4
row i is attacked
5 c+r=12
column j is attacked
6
diagonal j-i is attacked
7
diagonal j+i is attacked
O(n) representation