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
반응형
'Agorithm > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 5558번 チーズ(python) (0) | 2021.03.20 |
---|---|
백준 알고리즘 14425번 문자열 집합(python) (2) | 2021.03.20 |
백준 알고리즘 1016번 제곱 ㄴㄴ 수(python) (0) | 2021.03.20 |
백준 알고리즘 11660번 구간 합 구하기 5(python) (0) | 2021.03.20 |
백준 알고리즘 17175번 피보나치는 지겨웡~(python) (0) | 2021.03.20 |