public void isValidSolution() {
		int targetSum = (int) (Math.pow(2, n+1) - 2);
		for (int i = 0; i < n; i++) {
			int sumR = 0;
			int sumC = 0;
			for (int j = 0; j < n; j++) {
				sumR+=Math.pow(2, sudokuBoard[i][j]);
				sumC+=Math.pow(2, sudokuBoard[j][i]);
			}
			
			if (sumR != targetSum) {
				System.out.println("False");
				return;
			}

			if (sumC != targetSum) {
				System.out.println("False");
				return;
			}
		}
		
		int blockSize = (int) Math.sqrt(n);
		for (int i = 0; i < n; i+=blockSize) {
			for (int j = 0; j < n; j+=blockSize) {
				int sum = 0;
				for (int x = i; x < i + blockSize; x++) {
					for (int y = j; y < j + blockSize; y++) {
						sum+=Math.pow(2, sudokuBoard[x][y]);
					}
				}
				
				if (sum != targetSum) {
					System.out.println("False");
					return;
				}
			}
		}
		
		System.out.println("True");
	}