0
2D 배열로 nQueens 퍼즐 문제를 완료하려고합니다. 현재 요소에 대각선 요소가 사용되었는지 확인하는 데 문제가 있습니까? 다른 for 루프를 시도했지만 다음 행의 출력 만 변경 한 다음 나머지는 동일합니다. 여기 2D 배열의 대각선 요소가 가득 찼는 지 어떻게 확인할 수 있습니까?
내 코드입니다 :package main;
public class Board {
public static final int n = 8;
static boolean isSafe(boolean[][]board , int r, int c) {
int i;
int j;
for(i = 0; i < r; i++){
if(board[i][c] == true){
return false;
}
}
return true;
}
static boolean fillPositions(boolean [][]board, int r){
for(int c = 0; c < n; c++){
if(isSafe(board, r, c)){
board[r][c] = true;
if(r == (n - 1) || fillPositions(board, r+1)){
return true;
}
board[r][c] = false;
}
}
return false;
}
public static void main(String[] args){
boolean[][] board = new boolean[n][n];
if(fillPositions(board, 0)){
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
if(board[i][j]){
System.out.print("|Q");
} else {
System.out.print("|*");
}
}
System.out.println("|");
}
} else {
System.out.println("None");
}
}
}