MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

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

113 correct solutions
108 incorrect solutions

Last solution submitted on May 23, 2015

3 players like this problem

2 Comments

Alfonso Nieto-Castanon
on 27 Jan 2012

test suite needs additional samples that fail due to diagonal movements (e.g. [1,0;0,1])

Ned Gulley
on 30 Jan 2012

I added this test. Rescoring now. Thanks for the suggestion.

1 Comment