arr[5][5]인 이차원 배열이라고 한다면,
1~5 다섯칸
6~9 네칸
10~13 네칸
14~16 세칸
17~19 세칸
20~21 두칸
22~23 두칸
24 한칸
25 한칸
이런식으로 맨처음에만 n칸, 그 이후에는 n-1칸을 두번씩 반복한다.
int count = 5; int[][] arr = new int[count][count]; int row = 0; // 행 int col = -1; // 열 int num = 1; // 입력될 숫자 int cnt = 5; // 전진할 칸 수 int z = 1; // 진행 방향 (+1 or -1) for(int i = 0; i < count; i++) { for(int j = 0; j < cnt; j++) { col += z; arr[row][col] = num++; } cnt--; for(int j = 0; j < cnt; j++) { row += z; arr[row][col] = num++; } z *= -1; }