๐ ๋ฌธ์ ๋งํฌ
๐ ๋ฌธ์ ํ์ด
๋ฐฑ์ค 'N๊ณผ M' 4๋ฌธ์ ๋ฅผ ํตํด ๋ฐฑํธ๋ํน ์๋ฆฌ๋ฅผ ์กฐ๊ธ ์ดํดํ๊ฒ ๋์๊ณ ,, ๊ทธ ์ ๋ช ํ (?) N-Queen ๋ฌธ์ ๋ฅผ ๋์ ํ๋ค.
ํธ์ ๊ฐ๋ก, ์ธ๋ก, ๋๊ฐ์ ์ผ๋ก ์ด๋ํ ์ ์๋ค.
์ฆ, ํธ์ ์๋ก ๊ณต๊ฒฉํ ์ ์๊ฒ ๋๊ธฐ ์ํด์๋ ํธ ์์น์ ๊ฐ๋ก, ์ธ๋ก, ๋๊ฐ์ ์ ๋ ๋ค๋ฅธ ํธ์ด ์กด์ฌํ๋ฉด ์ ๋๋ค๋ ๊ฒ์ด๋ค.
ํธ ์์น ์ขํ๋ ๋ฐฐ์ด์ ํตํด ์ ์ฅํ๋ค.
์ฒ์์๋ x, y ์ขํ๊ฐ ๋ ์ฌ๋ผ 2์ฐจ์ ๋ฐฐ์ด๋ก ๋์๋๋ฐ
ํ๋ค๊ฐ ์ด๋ ค์์ ์ฐพ์๋ณด๋ 1์ฐจ์ ๋ฐฐ์ด๋ก ํด๊ฒฐํ๋๋ผ ,,!
๋ ๋นผ๊ณ ๋ค ์ฒ์ฌ๊ฐ ํ๋ฆผ์ด ์๋ค ,,
๋ฐฐ์ด์ index๋ฅผ ์ด๋ก ๋๊ณ , ํด๋น index์ ๊ฐ์ ํ์ผ๋ก ๋๋ฉด ๋๋ ๊ฒ์ด๋ค ,,,!
๊ทธ๋ผ ๊ฐ์ ํ์ ์์นํ๊ฑฐ๋ ๋๊ฐ์ ์ ์์นํ๋์ง์ ๋ํด์๋ง ๊ฒ์ฌํ๋ฉด ๋๋ค.
ํธ์ ๋์ ์ ์๋ค๋ฉด depth์ 1์ ์ฆ๊ฐ์์ผ ์ฌ๊ท ํจ์๋ฅผ ํธ์ถ์ํค๊ณ ,
depth == N์ด๋ผ๋ฉด ๋ฌธ์ ์กฐ๊ฑด์ ๋ง๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ฐพ์ ๊ฒ์ด๋ฏ๋ก count๋ฅผ 1 ์ฆ๊ฐํ๋ค.
๊ทธ๋ฆฌ๊ณ count๋ฅผ ์ถ๋ ฅํ๋ฉด ๋๋ค.
Java ์ฝ๋
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
static int N;
static int[] queenPlace;
static int count = 0;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
queenPlace = new int[N];
findNQueen(0);
System.out.println(count);
}
public static void findNQueen(int depth) {
if (depth == N) {
count++;
return;
}
for (int i = 0; i < N; i++) {
queenPlace[depth] = i;
if (getPossibillity(depth)) {
findNQueen(depth+1);
}
}
}
public static boolean getPossibillity(int column) {
for (int i = 0; i < column; i++) {
if (queenPlace[column] == queenPlace[i])
return false;
if (Math.abs(column - i) == Math.abs(queenPlace[column] - queenPlace[i]))
return false;
}
return true;
}
}
Reference
[๋ฐฑ์ค] 9663๋ฒ : N-Queen - JAVA [์๋ฐ]
www.acmicpc.net/problem/9663 9663๋ฒ: N-Queen N-Queen ๋ฌธ์ ๋ ํฌ๊ธฐ๊ฐ N × N์ธ ์ฒด์คํ ์์ ํธ N๊ฐ๋ฅผ ์๋ก ๊ณต๊ฒฉํ ์ ์๊ฒ ๋๋ ๋ฌธ์ ์ด๋ค. N์ด ์ฃผ์ด์ก์ ๋, ํธ์ ๋๋ ๋ฐฉ๋ฒ์ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์
st-lab.tistory.com
'Algorithms > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 12865๋ฒ, ํ๋ฒํ ๋ฐฐ๋ญ : Java (2) | 2023.02.23 |
---|---|
๋ฐฑ์ค 11729๋ฒ, ํ๋ ธ์ด ํ ์ด๋์์ : Java (0) | 2022.12.28 |
๋ฐฑ์ค 2447๋ฒ, ๋ณ ์ฐ๊ธฐ - 10 : Java (0) | 2022.12.27 |