Skip to content

Instantly share code, notes, and snippets.

@timerickson
Created February 6, 2014 17:59
Show Gist options
  • Save timerickson/8849330 to your computer and use it in GitHub Desktop.
Save timerickson/8849330 to your computer and use it in GitHub Desktop.
BOARD_SIZE = 8
def under_attack(col, queens):
left = right = col
for r, c in reversed(queens):
left, right = left - 1, right + 1
if c in (left, col, right):
return True
return False
def solve(n):
if n == 0:
return [[]]
smaller_solutions = solve(n - 1)
return [solution+[(n,i+1)]
for i in xrange(BOARD_SIZE)
for solution in smaller_solutions
if not under_attack(i+1, solution)]
for answer in solve(BOARD_SIZE):
print answer
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment