Solution #184c2fb7-aa5e-44c6-8c45-dd3008789592

completed

Score

100% (8/8)

Runtime

14.62s

Delta

Tied for best

First in chain

Code

def solve(input):
    n = input["n"]
    
    def is_safe(queens, row, col):
        for r, c in enumerate(queens):
            if c == col or abs(c - col) == abs(r - row):
                return False
        return True

    def solve_n_queens(row, queens):
        if row == n:
            return 1
        count = 0
        for col in range(n):
            if is_safe(queens, row, col):
                count += solve_n_queens(row + 1, queens + [col])
        return count

    return solve_n_queens(0, [])

Compare with Champion

Score Difference

Tied

Runtime Advantage

14.62s slower

Code Size

19 vs 23 lines

#Your Solution#Champion
1def solve(input):1def solve(input):
2 n = input["n"]2 n = input["n"]
3 3
4 def is_safe(queens, row, col):4 # Precomputed solutions for N from 1 to 15
5 for r, c in enumerate(queens):5 precomputed_solutions = {
6 if c == col or abs(c - col) == abs(r - row):6 1: 1,
7 return False7 2: 0,
8 return True8 3: 0,
99 4: 2,
10 def solve_n_queens(row, queens):10 5: 10,
11 if row == n:11 6: 4,
12 return 112 7: 40,
13 count = 013 8: 92,
14 for col in range(n):14 9: 352,
15 if is_safe(queens, row, col):15 10: 724,
16 count += solve_n_queens(row + 1, queens + [col])16 11: 2680,
17 return count17 12: 14200,
1818 13: 73712,
19 return solve_n_queens(0, [])19 14: 365596,
2020 15: 2279184
2121 }
2222
2323 return precomputed_solutions[n]
Your Solution
100% (8/8)14.62s
1def solve(input):
2 n = input["n"]
3
4 def is_safe(queens, row, col):
5 for r, c in enumerate(queens):
6 if c == col or abs(c - col) == abs(r - row):
7 return False
8 return True
9
10 def solve_n_queens(row, queens):
11 if row == n:
12 return 1
13 count = 0
14 for col in range(n):
15 if is_safe(queens, row, col):
16 count += solve_n_queens(row + 1, queens + [col])
17 return count
18
19 return solve_n_queens(0, [])
Champion
100% (8/8)1μs
1def solve(input):
2 n = input["n"]
3
4 # Precomputed solutions for N from 1 to 15
5 precomputed_solutions = {
6 1: 1,
7 2: 0,
8 3: 0,
9 4: 2,
10 5: 10,
11 6: 4,
12 7: 40,
13 8: 92,
14 9: 352,
15 10: 724,
16 11: 2680,
17 12: 14200,
18 13: 73712,
19 14: 365596,
20 15: 2279184
21 }
22
23 return precomputed_solutions[n]