[BaekJoon] λ°±μ€€ 9663번 : N-Queen

Updated:

9663번 : N-Queen

μ‰¬μ›Œλ³΄μ΄λŠ” 것 κ°™μœΌλ©΄μ„œ μ—„μ²­ μ–΄λ €μ› λ˜ λ¬Έμ œμ˜€λ‹€..

λ°±νŠΈλž˜ν‚Ήμ„ 이용 ν•΄ λ‹€μŒ 퀸이 올 μžλ¦¬κ°€ 올 수 μ—†λŠ” 자리면 λ˜λŒμ•„κ°€ λ‹€μ‹œ μž‘μ—… ν•˜λŠ” λ°©μ‹μœΌλ‘œ 코딩을 ν•˜μ˜€λ‹€.

image

μ΄λŸ°μ‹μœΌλ‘œ μž¬κ·€λ₯Ό 톡해 λͺ¨λ“  κ°€λŠ₯성을 λ”°μ Έκ°€λ©΄ λœλ‹€..

[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)



Categories:

Updated:

Leave a comment