배열을 회전하여 아래 그림과 같이 나타는 예제입니다. 행렬의 번호가 [1, 1] ~ [5, 5]라고 할 경우, 행과 열의 위치가 바뀌는 것을 [a, b] → [b, a] 로 나타냅니다. 아래 그림처럼 바꾸려면 바뀐 열의 번호는 6 - a 가 되야 하므로 [a, b] → [b, (6-a)] 의 형태로 바꾸는 알고리즘이 필요합니다. PrintArray는 Java Swing 예제: 다차원 배열 표시하기 (기초 설정 방법, for문으로 swing 요소 반복 등)에 있습니다.

package blog.info;
import blog.gui.PrintArray;
public class RotateArray {
public static void main(String[] args) {
char[][] a = new char[6][6];
char[][] b = new char[6][6];
char chr = 65; // A
for (int r = 1; r <= 5; r++)
{
for (int c = 1; c <= 5; c++)
a[r][c] = chr++;
}
for (int r = 1; r <= 5; r++)
{
for (int c = 1; c <= 5; c++)
{
int n = 6 - r;
b[c][n] = a[r][c];
// 열은 행위치로 바꾸고, 행은 6-r하여 열위치로 바꾼다. (5, 4, 3, 2, 1)
}
}
new PrintArray(a);
new PrintArray(b);
}
}





0개의 댓글