*๋ง๋ฐฉ์ง์ด๋ ?
๋ง๋ฐฉ์ง์ ‘1๋ถํฐ n์ ๊ณฑ’๊น์ง์ ์ฐ์๋ ์์ฐ์๋ฅผ ๊ฐ๋ก, ์ธ๋ก, ๋๊ฐ์ ์ ํฉ์ด ๊ฐ์์ง๋๋ก ์ ์ฌ๊ฐํ ๋ชจ์์ผ๋ก ๋ฐฐ์ดํ ๊ฒ.
โ
โ
์ค์ต ) ๋ฐ์ ๊ฒฐ๊ณผ์ ๊ฐ์ด ๋์ค๊ฒ ๋ง๋์์ค.
์กฐ๊ฑด : ๋ฒํผ๋ฆฌ๋, ๋ง๋ฐฉ์ง |
โ
โ
<๋ด๊ฐ ํ ๊ฒ> ์์ฑ๋ชปํจ..
โ
1. ์์๋ ๋ณด๋ฉด์ ํ ๋ผ๋๊น ๋ปํนํ๋ค. (์์๋ ๋ณด๋๋ฒ ์๊ฐ๋ฅด์ณ์ค)
๊ทธ๋๋ ์ ์๋๊ป์ ์น ํ์๋ค ๋์ถฉ ์ด๋ค ์์ผ๋ก ํด์ผํ๋์ง ํฐ ํ์ ์ ์ด์ฃผ์ฌ.
int N = 0; // ๋ฐฐ์ด ๊ฐ
int k = 0; // ๋ง๋ฐฉ์ง ์์ ๋ค์ด๊ฐ ์ซ์
int[][] arr = new int[N][N]; // ๋ฐฐ์ด
int i = 1; // ํ
int j = (N / 2) + 1; // ์ด
// ๋ฐฐ์ด ์
๋ ฅ ๋ถ๋ถ
System.out.println("๋ง๋ฐฉ์ง์ ๊ตฌํ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ์
๋ ฅํ์ธ์ : ");
N = Integer.parseInt(inbr.readLine());
// ๋ง๋ฐฉ์ง ๊ณ์ฐ
for(k = 1; k <= N * N; k++) {
arr[i][j] = k;
if (k % N == 0) { // k๊ฐ N์ ๋ฐฐ์์ธ์ง ๊ฒ์ฌ
i = i + 1; // N์ ๋ฐฐ์์ด๋ฉด ํ์ 1 ์ฆ๊ฐ
} else {
i = i - 1; // ํ ๊ฐ์
j = j + 1; // ์ด ์ฆ๊ฐ
if (i < 0) // ํ์ด 0๋ณด๋ค ์์ผ๋ฉด
i = N - 1; // ๋ฐฐ์ด ํฌ๊ธฐ์์ 1์ ๋บ๋ค
if (j == N) // ํ์ด ๋ฐฐ์ด ํฌ๊ธฐ์ ๊ฐ๋ค๋ฉด
j = 0; // ํ์ 0
}
}
// ๋ง๋ฐฉ์ง ์ถ๋ ฅ
for(i = 1; i < arr.length; i++) {
for(j = 1; j < arr[i].length; j++) {
System.out.print(arr[i][j] + "\t");
System.out.println();
}
}
โ<๊ฒฐ๊ณผ๊ฐ>
โ
โ
2. ์์ ์์น๋ฅผ ์ฎ๊น
int N = 0; // ๋ฐฐ์ด ๊ฐ
int k = 0; // ๋ง๋ฐฉ์ง ์์ ๋ค์ด๊ฐ ์ซ์
int i = 1; // ํ
// ๋ฐฐ์ด ์
๋ ฅ ๋ถ๋ถ
System.out.println("๋ง๋ฐฉ์ง์ ๊ตฌํ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ์
๋ ฅํ์ธ์ : ");
N = Integer.parseInt(inbr.readLine());
int[][] arr = new int[N][N]; // ๋ฐฐ์ด
int j = (N / 2) + 1; // ์ด
// ๋ง๋ฐฉ์ง ๊ณ์ฐ
for(k = 1; k <= N * N; k++) {
arr[i][j] = k;
if (k % N == 0) { // k๊ฐ N์ ๋ฐฐ์์ธ์ง ๊ฒ์ฌ
i = i + 1; // N์ ๋ฐฐ์์ด๋ฉด ํ์ 1 ์ฆ๊ฐ
} else {
i = i - 1; // ํ ๊ฐ์
j = j + 1; // ์ด ์ฆ๊ฐ
if (i < 0) // ํ์ด 0๋ณด๋ค ์์ผ๋ฉด
i = N - 1; // ๋ฐฐ์ด ํฌ๊ธฐ์์ 1์ ๋บ๋ค
if (j == N) // ํ์ด ๋ฐฐ์ด ํฌ๊ธฐ์ ๊ฐ๋ค๋ฉด
j = 0; // ํ์ 0
}
}
// ๋ง๋ฐฉ์ง ์ถ๋ ฅ
for(i = 1; i < arr.length; i++) {
for(j = 1; j < arr[i].length; j++) {
System.out.print(arr[i][j] + "\t");
System.out.println();
}
}
โ
3. ๋๋ฒ๊น ์ ํ๊ธฐ ์ํด 22๋ฒ์งธ ์ค ๋ฐ์๋ค๊ฐ
์ด๊ฑฐ๋ฅผ ์ ๋ ฅํด์ ์์ธ ํ์
.....
-ํฌ๊ธฐ-
<์ ์๋์ด ํ ๊ฒ>
MaBangJin.java
package algorithm;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class MaBangJin {
public int[][] mabangjin(int size) {
int[][] arr = new int[size][size];
int N = 1; // ์
๋ ฅ๋๋ ๊ฐ
int i = 0; // ๋ฐฐ์ด์ ํ ์์น
int j = size / 2; // ๋ฐฐ์ด์ ์ด ์์น
while (N <= size * size) {
arr[i][j] = N;
if (N % size == 0) { // ์
๋ ฅํ ๊ฐ์ด ๋ฐฐ์ด ํฌ๊ธฐ์ ๋ฐฐ์์ธ์ง ํ์ธ
i = i + 1;
} else {
i = i - 1;
j = j + 1;
if (i < 0) // ํ์ ๋ฐฐ์ด ์ธ๋ฑ์ค๊ฐ 0๋ณด๋ค ์์์ง
i = size - 1; // ์ธ๋ฑ์ค ๋ฒํธ๋ก ์ ค ํฐ ์ธ๋ฑ์ค๋ฅผ ํ ๋น
if (j == size) // ์ด์ ๋ฑ
๋ ค ์ธ๋ฑ์ค๊ฐ (๋ฐฐ์ด.length -1)๋ณด๋ค ์ปค์ง
j = 0; // ์ธ๋ฑ์ค ๋ฒํธ๋ก ์ ค ์์ ์ธ๋ฑ์ค ํ ๋น
}
N++;
}
return arr;
}
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader inbr = new BufferedReader(new InputStreamReader(System.in));
int arr[][];
System.out.print("๋ง๋ฐฉ์ง์ ๊ตฌํ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ์
๋ ฅํ์ธ์ : ");
int size = Integer.parseInt(inbr.readLine());
MaBangJin m = new MaBangJin();
arr = m.mabangjin(size);
m.display(arr);
}
private void display(int[][] arr) {
for (int n = 0; n < arr.length; n++) {
for (int m = 0; m < arr.length; m++) {
System.out.print(arr[n][m] + "\t");
}
System.out.println();
}
}
}
- ์ ์๋์ด ํ์ ๋ง๋ฐฉ์ง๊ณผ ์ง์ ๋ง๋ฐฉ์ง์ ์์ด ๋ค๋ฅด๋ค๋๊ฑธ ๋ง์ ์ํด์ฃผ์ฌ. ์ฉ
- ๋ง๋ฐฉ์ง ์์๋๋ฅผ ๋ณด๋ฉด์ ํ๋๋ฐ ๊ทธ ์์๋์ ๋ฐฐ์ด์ด '0๋ถํฐ ์์ํด์ ๋ฐฐ์ดํฌ๊ธฐ-1๊น์ง' ๋ผ๋ ์กฐ๊ฑด์ด ๋ค์ด๊ฐ์ง์์.
๊ทธ๊ฑธ ๊ฐ์ํ๊ณ ์์ ์จ์ผํด์ ํ๋ค์๋ค... ๋ ์์ง ์ฝ๋ฉ ์ด๋ฆฐ์ด์ธ๋ฐ...
'Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java-๊ธฐ์ด] ์ค์ต (๋ฉ์๋๋ก ๊ตฌ๊ตฌ๋จ ํธ์ถํ๊ธฐ) (0) | 2021.02.24 |
---|---|
[Java-๊ธฐ์ด] ์ค์ต (๋ก๋ ์ถ์ฒจ ๋ฒํธ) (0) | 2021.02.24 |
[Java-๊ธฐ์ด] ์๊ณ ๋ฆฌ์ฆ ์ค์ต (๋ฒ๋ธ์ ๋ ฌ) (0) | 2021.02.24 |
[Java-๊ธฐ์ด] ์ค์ต (ํ์ ์ฐ์ถ ํ๋ก๊ทธ๋จ 2) (0) | 2021.02.24 |
[Java-๊ธฐ์ด] ์ค์ต (ํ์ ์ฐ์ถ ํ๋ก๊ทธ๋จ) (0) | 2021.02.24 |
๋๊ธ