File tree Expand file tree Collapse file tree 2 files changed +59
-0
lines changed
Expand file tree Collapse file tree 2 files changed +59
-0
lines changed Original file line number Diff line number Diff line change 1+ //N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다.
2+ //N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오.
3+ //첫째 줄에 N이 주어진다. (1 ≤ N < 15)
4+ func NQueen( _ y: Int ) {
5+ if y == n {
6+ answer += 1
7+ return
8+ }
9+ for j in 0 ..< n {
10+ if vertics [ j] { continue }
11+ if diagonal1 [ y+ j] { continue }
12+ if diagonal2 [ y- j+ n- 1 ] { continue }
13+ vertics [ j] = true
14+ diagonal1 [ y+ j] = true
15+ diagonal2 [ y- j+ n- 1 ] = true
16+ NQueen ( y+ 1 )
17+ vertics [ j] = false
18+ diagonal1 [ y+ j] = false
19+ diagonal2 [ y- j+ n- 1 ] = false
20+ }
21+ }
22+ let n = Int ( readLine ( ) !) !
23+ var vertics = [ Bool] ( repeating: false , count: 15 )
24+ var diagonal1 = [ Bool] ( repeating: false , count: 2 * n- 1 )
25+ var diagonal2 = [ Bool] ( repeating: false , count: 2 * n- 1 )
26+
27+ var answer = 0
28+ NQueen ( 0 )
29+ print ( answer)
Original file line number Diff line number Diff line change 1+ # [ Gold IV] N-Queen - 9663
2+
3+ [ 문제 링크] ( https://www.acmicpc.net/problem/9663 )
4+
5+ ### 성능 요약
6+
7+ 메모리: 69100 KB, 시간: 5208 ms
8+
9+ ### 분류
10+
11+ 백트래킹, 브루트포스 알고리즘
12+
13+ ### 제출 일자
14+
15+ 2025년 1월 9일 22:45:30
16+
17+ ### 문제 설명
18+
19+ <p >N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다.</p >
20+
21+ <p >N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오.</p >
22+
23+ ### 입력
24+
25+ <p >첫째 줄에 N이 주어진다. (1 ≤ N < 15)</p >
26+
27+ ### 출력
28+
29+ <p >첫째 줄에 퀸 N개를 서로 공격할 수 없게 놓는 경우의 수를 출력한다.</p >
30+
You can’t perform that action at this time.
0 commit comments