백준 풀이

백준 9663번 파이썬 (백트래킹 기초)

ag2개발자 2022. 8. 30. 19:56
def dis(x):
    for i in range(x):
        if row[i]==row[x] or abs(row[i]-row[x])==abs(x-i):
            return False
    return True

def sol(x):
    global cnt
    if x==n:
        cnt+=1
        return
    else:
        for i in range(n):
            #퀸의 위치 = (x,i)
            row[x]=i
            if dis(x):
                sol(x+1)

n=int(input())
row=[0]*n
cnt=0
sol(0)
print(cnt)