백준 9663 - N-Queen

2024-01-02

https://www.acmicpc.net/problem/9663

문제

N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다.

N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 N이 주어진다. (1 ≤ N < 15)

출력

첫째 줄에 퀸 N개를 서로 공격할 수 없게 놓는 경우의 수를 출력한다.

풀이

$N$의 최댓값이 14이다. 브루트 포스로 각 $N$에 대한 정답을 미리 전부 구한 뒤, 이를 배열에 담아 입력받은 $N$ 번째 원소를 출력하도록 하면 된다.

코드

print([0, 1, 0, 0, 2, 10, 4, 40, 92, 352, 724, 2680, 14200, 73712, 365596][int(input())])