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)