[v.๋ฐฑํธ๋ํน-N-Queen-9663]BAEKJOON_Python
220126 ์์ฑ
<๋ณธ ๋ธ๋ก๊ทธ๋ BAEKJOON ์ ์ฐธ๊ณ ํด์ ์ ๋ง์ ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค>
9663
N-Queen ๋ฌธ์ ๋ ํฌ๊ธฐ๊ฐ N × N์ธ ์ฒด์คํ ์์ ํธ N๊ฐ๋ฅผ ์๋ก ๊ณต๊ฒฉํ ์ ์๊ฒ ๋๋ ๋ฌธ์
N์ด ์ฃผ์ด์ก์ ๋, ํธ์ ๋๋ ๋ฐฉ๋ฒ์ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ
๋ด ํ์ด
def backTracking(rowPos) :
global answer
# ํธ ๋ชจ๋ ๋ฐฐ์นํ๋ฉด ๋!
if rowPos == n :
answer += 1
return
for col in range(n) :
flag = True
# ์ด์ ํ๋ค
for row in range(rowPos) :
# ๊ฐ์ ์ด์ ์๊ฑฐ๋, ๋๊ฐ์ ์ ํธ์ด ์ด๋ฏธ ์กด์ฌํ๋ฉด ๊ฐ์ง์น๊ธฐ
if queenLocate[row] == col or rowPos -row == abs(col-queenLocate[row]) :
flag = False
break
if flag :
queenLocate[rowPos] = col
backTracking(rowPos + 1)
n = int(input())
answer = 0
# ๊ฐ row ๋ง๋ค queen ์์น ์ธ๋ฑ์ค ์ ์ฅ๋ฆฌ์คํธ
queenLocate = [0] * n
backTracking(0)
print(answer)
1. ๊ฐ ํ๋ง๋ค Queen์ ํ๋๋ง ์กด์ฌํด์ผ ํ๋ฏ๋ก, ๋งจ ์ ํ๋ถํฐ ๋ด๋ ค์ค๊ธฐ
2. ๊ฐ ํ์์ ์ด์ ํ๋ค์ ๊ด์ฐฐํ๋ฉด์ ๊ฐ์ ์ด์ด๋ ๋๊ฐ์ ์ ํธ์ด ์๋ค๋ฉด ๊ฐ์ง์น๊ธฐ
3. ๋งจ ๋ฐ์ ํ๊น์ง ํธ์ ์์นํ ์ ์๋ค๋ฉด ๊ฒฝ์ฐ์ ์๋ฅผ ํ๋ ์ฆ๊ฐ
8
92
์ฐธ๊ณ ํ ๋ธ๋ก๊ทธ ์ ๋๋ค! ์ค๋ช ๊ฐ์ฌํฉ๋๋ค1 bbb
์ฒด์ค,, ์๋ฆฌ ๋ชจ๋ฅด๋ฉด ๋ชป ํ ๋ฏ์ ใ ก,ใ ก,ใ ใ กใ
์์ง๋ ์ดํด๊ฐ ์๊ฐ๋์ผใ ก,,
https://studyandwrite.tistory.com/393
[๋ฐฑ์ค(ํ์ด์ฌ/Python)] 9663_N-Queen - ๋ฐฑํธ๋ํน
https://www.acmicpc.net/problem/9663 9663๋ฒ: N-Queen N-Queen ๋ฌธ์ ๋ ํฌ๊ธฐ๊ฐ N × N์ธ ์ฒด์คํ ์์ ํธ N๊ฐ๋ฅผ ์๋ก ๊ณต๊ฒฉํ ์ ์๊ฒ ๋๋ ๋ฌธ์ ์ด๋ค. N์ด ์ฃผ์ด์ก์ ๋, ํธ์ ๋๋ ๋ฐฉ๋ฒ์ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ..
studyandwrite.tistory.com