Picture a chessboard populated with a number of queens (i.e. pieces that can move like a queen in chess). The board is a matrix, a, filled mostly with zeros, while the queens are given as ones. Your job is to verify that the board is a legitimate answer to the N-Queens problem. The board is good only when no queen can "see" (and thus capture) another queen.
Example
The matrix below shows two queens on a 3-by-3 chessboard. The queens can't see each other, so the function should return TRUE.
1 0 0 0 0 1 0 0 0
Here is a bigger board with more queens. Since the queens on rows 3 and 4 are adjacent along a diagonal, they can see each other and the function should return FALSE.
0 0 0 1 1 0 0 0 0 0 1 0 0 1 0 0
The board doesn't have to be square, but it always has 2 or more rows and 2 or more columns. This matrix returns FALSE.
1 0 0 0 0 0 0 0 1 1
Cheating solution.
This solution has a minor bug, but it fortunately passed the test suite. :-)
It's supposed to be a n-QUEENS checker, not an n-KINGS checker. This solution wouldn't work with a = [1 0 1; 0 0 0; 0 1 0], for example.
Thanks yurenchu! I added your proposed test point to the tests.
test suite needs additional samples that fail due to diagonal movements (e.g. [1,0;0,1])
I added this test. Rescoring now. Thanks for the suggestion.
Make one big string out of two smaller strings
1070 Solvers
110 Solvers
Given a window, how many subsets of a vector sum positive
673 Solvers
Basics: 'Find the eigenvalues of given matrix
257 Solvers
Who is the smartest MATLAB programmer?
469 Solvers
Solution 547461
Only works because test suite isn't extensive enough. Wouldn't work with a = [1 0 1; 0 0 0; 0 1 0], for example.