Agorithm/백준 알고리즘
백준 알고리즘 9663번 N-Queen(python)
kimjinho1
2021. 3. 20. 17:38
728x90
반응형
대표적인 브루트포스 알고리즘 & 백트래킹 문제이다.
row[n] == row[i] -> 같은 열 확인, abs(row[n]-row[i]) == n-i -> 대각선 확인
def check(n):
for i in range(n):
if row[n] == row[i] or abs(row[n]-row[i]) == n-i:
return 0
return 1
def dfs(n):
global res
if n == N:
res += 1
else:
for i in range(N):
row[n] = i
if check(n):
dfs(n+1)
N = int(input())
row = [0]*N
res = 0
dfs(0)
print(res)
728x90
반응형