N Queen 2
Updated:
N-Queen과 똑같은데 오히려 문제는 더 쉬워졌다.
경우의수만 체크를 해서 리턴을 하면된다
by Java
class Solution {
int ans=0;
public int totalNQueens(int n) {
int[] arr = new int[n];
go(0,n,arr);
return ans;
}
private void go(int index,int depth,int[] arr) {
if(index==depth) {
ans++;
return;
}
for(int i=1;i<=depth;i++) {
arr[index] = i;
if(check(index,arr)) {
go(index+1,depth,arr);
}
else arr[index]=0;
}
}
private boolean check(int index,int[] arr) {
for(int i=0;i<index;i++) {
if(arr[i]==arr[index] || Math.abs(i-index) == Math.abs(arr[i]-arr[index])) return false;
}
return true;
}
}
Leave a comment