lecture8_P5_backtracking.py
654 Bytes
def promising(i,col):
k=0
switch=True
while(k<i and switch==True):
if(col[i]==col[k] or abs(col[i]-col[k])==i-k):
switch=False
k+=1
return switch
def queens(n,i,col):
if(promising(i,col)==True):
if(i==n-1):
print(col)
return True #한가지 해만 찾아서 바로 리턴하는 것
else:
for j in range(0,n):
col[i+1]=j
#원본 코드
#queens(n,i+1,col)
if(queens(n,i+1,col)): #한가지 해만 찾아서 바로 리턴하는 것
return True
n=5
col=n*[0]
queens(n,-1,col)