(60 개 이상의 질문에 chess 태그가 지정되었지만 간단한 n- 퀸 도전은 없습니다.)
체스에서 N- 퀸즈 퍼즐 은 다음과 같이 설명됩니다. n x n체스 판과 n여왕이 주어지면 두 여왕이 서로 위협하지 않도록 체스 판에 여왕을 배치하십시오. 다음은 n = 8Wikipedia에서 빌린에 대한 예제 솔루션입니다 .
또는 ASCII 렌더링에서 :
xxxQxxxx
xxxxxxQx
xxQxxxxx
xxxxxxxQ
xQxxxxxx
xxxxQxxx
Qxxxxxxx
xxxxxQxx
여기서 과제 n는 n-Queens 퍼즐 에 대한 솔루션의 ASCII 표현을 입력 및 출력하는 것입니다. 하나 이상의 가능한 솔루션 (예 : 적어도 회전 또는 반사)이 있으므로 코드는 유효한 솔루션 만 출력하면됩니다.
입력
하나의 양의 정수 n에 n >= 4 편리한 형식 . (n = 2 및 n = 3에는 솔루션이 없으며 n = 1은 사소하므로 제외됩니다)
산출
위에서 설명한 N- 퀸 퍼즐에 대한 솔루션의 ASCII 표현 결과입니다. 공백과 여왕을 나타내는 두 개의 고유 한 ASCII 값을 선택할 수 있습니다. 다시, 이것은 임의의 적절한 형식 (단일 문자열, 문자열 목록, 문자 배열 등)으로 출력 될 수 있습니다.
규칙
- 문자 자체가 올바르게 정렬되는 한, 줄 바꿈 또는 공백은 모두 선택 사항이며 문자 사이의 공백입니다.
- 알고리즘을 사용하여 가능한 위치를 계산하거나 명시적인 "계단"스타일의 솔루션 중 코드에 적합한 골퍼를 사용할 수 있습니다.
- 전체 프로그램 또는 기능이 허용됩니다. 함수 인 경우 출력하지 않고 출력을 반환 할 수 있습니다.
- 가능하면 다른 사람들이 귀하의 코드를 시험해 볼 수 있도록 온라인 테스트 환경에 대한 링크를 포함하십시오!
- 표준 허점 은 금지되어 있습니다.
- 이것은 코드 골프 이므로 모든 일반적인 골프 규칙이 적용되며 가장 짧은 코드 (바이트)가 이깁니다.
예
n=4
xQxx
xxxQ
Qxxx
xxQx
n=7
xxQxxxx
xxxxxxQ
xQxxxxx
xxxQxxx
xxxxxQx
Qxxxxxx
xxxxQxx
n=10
xxxxQxxxxx
xxxxxxxxxQ
xxxQxxxxxx
xxxxxxxxQx
xxQxxxxxxx
xxxxxxxQxx
xQxxxxxxxx
xxxxxxQxxx
Qxxxxxxxxx
xxxxxQxxxx



여왕의 수 읽기 Q를 표준 입력, 2 개 개의 나중에 사용하기 위해 변수 계산 :
시작 메인 루프, 반복 연구 에서, 행 번호를, Q , 루프의 시작 감소시키는, 0까지 처음 그래서 R 이다 q는 뺀
계산은 다음 식으로 각 행 여왕 오프셋 :
현재 행에 대한 퀸의 위치를 들여 쓰기위한 출력 오프셋 공간 문자와 출력 루프가 더 쉬워 지므로 추가 공백이 하나 더 있습니다. 여왕
의
인지 테스트합니다 .이 경우 보드 끝에 도달하여 종료 할 수 있습니다. 그렇지 않으면 메인 루프를 다시 반복합니다.