n queen

5
N Queen Steve Paks

Upload: jonghoon-park

Post on 18-Jul-2015

98 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: N queen

N Queen

Steve Paks

Page 2: N queen

Question

• 체스에서 queen의 가로, 세로, 대각선 방향으로 어느 곳이나 한 번에 움직일 수 있다. 즉 다음과 같은 체스판에서

queen이 X라고 표시된 위치에 있을 때, 그 다음 queen이 움직여 갈수 있는 부분은 어둡게 칠해진 부분 중의 하나이

다.

• N X N 크기의 정방형 체스판이 주어졌다. 우리는 거기에 N개의 queen을 배치하려고 하는데, 모든 queen들은 서로

잡아먹을 수 없어야 한다. 그렇다면 queen들을 어떻게 배치해야만 할까? 가능한 모든 경우의 개수를 출력한다.

• queen의 수 N(1≤N≤13)을 입력 받는다.

• N X N의 체스판에서 N개의 queen들이 서로 잡아먹지 않는 위치로 놓을 수 있는 방법의 수를 출력한다.

• 입력 예

4

• 출력 예

2

• N이 4일 때, 나오는 경우는 두 가지이다.

Page 3: N queen

Algorithm

Page 4: N queen

Algorithm(Cont’d)1

1

1

1

1

1

1

1

1

0

0

2

0

3

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

Page 5: N queen

Core methods

• nQueen()– Queen을 하나씩 체스판에 올려보고

– 행을 바꿔가면서 서로 공격하지 못하도록 만드는 패턴을 찾음

• containsRoute(int)– 대각선 또는 직선 위치에 Queen이 있는지 검토