백준9663) N-Queen

이희제·2021년 9월 30일
2

코딩 테스트 연습

목록 보기
8/9
  • 백트래킹 문제이다.
  • 한 행에는 하나의 퀸만 둔다고 가정한다.

n = int(input())

col = [-1 for _ in range(n)]
answer= 0

def isOk(cur_number):
    global col
    for i in range(cur_number):
        if (col[cur_number]==col[i]) or (abs(col[cur_number]-col[i]) == abs(cur_number-i)):
            return False

    return True


def getSol(cur_row_number):
    global answer, col

    
    if cur_row_number==n:
        answer+=1
        return 
    
    
    for i in range(n):
        col[cur_row_number] = i
        if isOk(cur_row_number):
            getSol(cur_row_number+1)


    
getSol(0)

print(answer)
profile
오늘만 열심히 살고 모든 걸 남기되 후회는 남기지 말자

0개의 댓글