[BaekJoon] λ°±μ€ 9663λ² : N-Queen
Updated:
9663λ² : N-Queen
μ¬μ보μ΄λ κ² κ°μΌλ©΄μ μμ² μ΄λ €μ λ λ¬Έμ μλ€..
λ°±νΈλνΉμ μ΄μ© ν΄ λ€μ νΈμ΄ μ¬ μλ¦¬κ° μ¬ μ μλ μ리면 λλμκ° λ€μ μμ νλ λ°©μμΌλ‘ μ½λ©μ νμλ€.
μ΄λ°μμΌλ‘ μ¬κ·λ₯Ό ν΅ν΄ λͺ¨λ κ°λ₯μ±μ λ°μ Έκ°λ©΄ λλ€..
[2020.12.31] μ μ¬μ§μμ (4, 3) μμ (5, 5) λ‘ κ° μ μλ€ (0, 0) μ λμ¬μ§ νΈ λλ¬Έμ !
κ·Έλ°λ° Python3 μΌλ‘ μ μΆμ νλκΉ μκ°μ΄κ³Όκ° λ°μνλ€.
μλ§ μ§κΈκΉμ§ λ°©λ¬Ένλ λͺ¨λ μ’νμ μ§κΈ λ°©λ¬Έν΄μΌ νλ μ’νκ° λκ°μ μμΉμΈμ§ νμ μ νλλΌ κ·Έλ° κ² κ°λ€.
PyPy3 μΌλ‘ μ μΆνλ©΄ ν΅κ³Όλ λλ€.
λ΄μΌ ν μΌμ λ€λ₯Έ λ¬Έμ λ₯Ό νΈλκ² μλλΌ μ΄ μ½λλ₯Ό Python3 μΌλ‘ μ μΆνμ κ²½μ°μλ ν΅κ³Όνκ² νλ κ²..
[2020.12.31] λμ ν κ°μ λ°©λ²μ΄ μκ°μ΄ μλ κ²μμ ν΄λ³΄μλλ° λ€λ₯Έ νμ΄λ€λ νμ΄μ¬μΌλ‘ μ μΆνλ©΄
μκ°μ΄κ³Όκ° λ°μνλ€κ³ νλ€.. λ°±νΈλνΉ λ¬Έμ λ μ λ§νλ©΄ PyPy3 μΌλ‘ μ μΆνμ..
def search(i, j, visitNode, visitCol):
global res
if i == (n - 1):
res += 1
return
for col in range(n):
if abs(j - col) >= 2 and col not in visitCol:
check = 0
for cur in visitNode:
if abs(cur[0] - (i + 1)) == abs(cur[1] - col):
check = 1
break
if check == 0:
visitNode.append([i, j])
visitCol.append(j)
search(i + 1, col, visitNode, visitCol)
visitNode.pop()
visitCol.pop()
else:
continue
res = 0
n = int(input())
visitNode = []
visitCol = []
for j in range(n):
search(0, j, visitNode, visitCol)
print(res)
Leave a comment