BOJ 9663 N-Queen

1 개요[ | ]

BOJ 9663 N-Queen


2 C++[ | ]

#include <iostream>
#define MAX 15
using namespace std;

int arr[MAX];
int N, total = 0;

bool check(int cnt) {
    for(int i=0; i<cnt; i++) {
        if(arr[i] == arr[cnt] || abs(arr[cnt]-arr[i]) == cnt-i) {
            return false;
        }
    }
    return true;
}

void nqueen(int cnt) {
    if(cnt == N) {
        total++;
        return;
    }
    for(int i = 0; i < N; i++) {
        arr[cnt] = i;
        if(check(cnt)) nqueen(cnt+1);
    }
}

int main() {
    cin >> N;
    nqueen(0);
    cout << total;
}
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}