마방진
MagicMain.java
package com.gyuone.exam01;
public class MagicMain {
public static void main(String[] args) {
int[][] a = new int[5][5];
MagicSquare square = new MagicSquare(a);
printSquare(square.getSquare());
}
public static void printSquare(int[][] arr) {
for(int i = 0; i < arr.length; i++) {
for(int k = 0; k < arr[i].length; k++) {
System.out.printf("%2d ", arr[i][k]);
}
System.out.println();
}
}
}
MagicSquare.java
package com.gyuone.exam01;
public class MagicSquare {
private int[][] arr;
public MagicSquare(int[][] arr) {
this.arr = arr;
}
public int[][] getSquare() {
int row = arr.length - 1; // 1
int col = arr.length / 2; // 3
int max = arr.length - 1;
arr[row][col] = 1;
for (int i = 2; i <= arr.length * arr.length; i++) {
if ((col + 1) > max && (row + 1) > max) {
row--;
} else if ((col + 1) > max) {
col = 0;
row++;
} else if ((row + 1) > max) {
row = 0;
col++;
} else {
row++;
col++;
}
if(arr[row][col] != 0) {
row -= 2;
col--;
}
arr[row][col] = i;
}
return arr;
}
}
'IT > JAVA' 카테고리의 다른 글
[55일차] JAVA 알고리즘 문제풀이 06 (0) | 2022.09.07 |
---|---|
[55일차] JAVA 알고리즘 문제풀이 04 (0) | 2022.09.07 |
[19일차] JAVA (0) | 2022.07.14 |
[18일차] JAVA 알고리즘 문제풀이 2 (0) | 2022.07.13 |
[18일차] JAVA 알고리즘 문제풀이 1 (0) | 2022.07.13 |
댓글