Skip to content

Commit 9f6c191

Browse files
committed
[Gold IV] Title: N-Queen, Time: 5208 ms, Memory: 69100 KB -BaekjoonHub
1 parent 1f1f686 commit 9f6c191

File tree

2 files changed

+59
-0
lines changed

2 files changed

+59
-0
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
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)
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
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+

0 commit comments

Comments
 (0)