[알고리즘/백준] 9663번 :N-Queen(python)

유현민·2022년 3월 28일
0

알고리즘

목록 보기
76/253

대각선 비교가 중요하다고 생각했다. board[i] - board[x] == i-x값이 동일하면 대각선에 있다.

def check(x):
    for i in range(x):
        if board[x] == board[i] or abs(board[i] - board[x]) == abs(i - x):
            return False
    return True


def q(x):
    global ans
    if x == N:
        ans += 1
        return
    else:
        for i in range(N):
            board[x] = i
            if check(x):
                q(x + 1)


if __name__ == '__main__':
    N = int(input())
    ans = 0
    board = [0] * N
    q(0)
    print(ans)
profile
smilegate megaport infra

0개의 댓글