Menu
CoddyTech

N-Queens II

어려움백트래킹python iconjava iconcpp iconc iconjs icon+10

체스판의 퀸은 아무리 멀리 떨어져 있어도 같은 행과 열, 그리고 두 대각선 위의 모든 칸을 공격합니다. 정수 n이 주어집니다. 서로 공격하지 않도록 n × n 체스판에 n개의 퀸을 놓는 방법의 수를 반환하세요.

한 방법에서는 어떤 칸에 퀸이 있고 다른 방법에서는 그 칸이 비어 있다면 두 방법은 서로 다릅니다. 따라서 체스판과 그 거울상은 서로 비슷해 보여도 두 가지 방법으로 셉니다.

함수

totalNQueens(n: integer) → integer
ninteger
보드의 크기와 퀸의 수
반환값integer
어느 퀸도 다른 퀸을 공격하지 않도록 퀸을 배치하는 방법의 수

제약 조건

  • 1 ≤ n ≤ 12
  • n = 12의 답은 14,200이므로 32비트 정수에 들어갑니다.

예제

입력
n = 4
출력
2
설명
각 행의 퀸이 있는 열을 위에서 아래로 적으면 두 보드는 1, 3, 0, 2와 2, 0, 3, 1입니다. 각 보드는 서로의 거울상이며, 두 가지 경우로 셉니다. 다른 모든 선택에서는 두 퀸이 같은 열이나 대각선에 놓입니다.

lock icon제출 시 숨은 테스트 +10개

challenge icon

후속 질문

보드를 회전하거나 거울 대칭해도 서로 다른 보드만 셀 수 있나요? n = 8일 때, 92개의 보드는 이러한 12개의 그룹으로 나뉩니다.

코드 초기화
def totalNQueens(n):
    # 여기에 코드를 작성하세요
테스트 케이스

케이스 1

케이스 2

입력

n = 4

기대값

2