Eight Queens Problem

유명한 프로그래밍 퀴즈.

8-queens 문제는 Queen이 다른 Queen를 공격할 수 없는 8 X 8개의 체스 판에서 8개의 Queen을 체스판 위에 놓이게하는 문제이다. 체스 판에서 Queen은 똑같은 행렬(가로와 세로)/대각선방향에 대해서 공격이 가능하다. 그러므로 이 문제에 대한 solution은 자기 자신(Queen)을 보호하면서 새로운 위치에 Queen을 놓게 하는 것이다.

  1. 각 열에는 오직 하나의 퀸만 존재해야 한다.
  2. 각 행에는 오직 하나의 퀸만 존재해야 한다.
  3. 각각의 퀸의 대각선에 다른 퀸이 존재해서는 안 된다.

예를들어 다음과 같이 퀸을 위치할 수 있다.

8 x 8 체스판에 8개의 Queen을 놓을 수 있는 방법은 모두 몇 가지인가?

재귀호출
대각선도 행/열과 마찬가지로 한 퀸의 대각선 선상에서는 인접하지 않더라도 다른 퀸을 놓을 수 없다는거죠? 어휴 문제를 잘못 이해하고 풀었네요. 행,열과 달리 한 퀸과 바로 인접한 대각선방향에서만 퀸을 놓을 수 없는 걸로 이해하고 코드를 짰어요;ㅎㅎㅎ 나중에 시간나면 다시 풀어봐야겠네요 어릴 때 분명히 체스를 해 본 기억이 있는데.. 체스 룰이 기억이 잘 안나네요;;ㅎㅎ - Katherine, 2014/03/11 17:00 M D
@Katherine님, 네 맞습니다. 대각선상으로 움직일때도 부딫히면 안됩니다. - 길가의풀, 2014/03/11 17:18 M D
※ 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

풀이 작성

※ 풀이작성 안내
  • 본문에 코드를 삽입할 경우 에디터 우측 상단의 "코드삽입" 버튼을 이용 해 주세요.
  • 마크다운 문법으로 본문을 작성 해 주세요.
  • 풀이를 읽는 사람들을 위하여 풀이에 대한 설명도 부탁드려요. (아이디어나 사용한 알고리즘 또는 참고한 자료등)
  • 작성한 풀이는 다른 사람(빨간띠 이상)에 의해서 내용이 개선될 수 있습니다.
목록으로
코딩도장

코딩도장은 프로그래밍 문제풀이를 통해서 코딩 실력을 수련(Practice)하는 곳입니다.

재귀호출 x 3
연관 문제
주 현태, 2017/01/01 19:56
Chop, 2017/02/24 17:36

언어별 풀이 현황
전 체 x 31
java x 3
python x 13
lisp x 1
기 타 x 4
go x 1
cpp x 6
ruby x 2
cs x 1