배열을 회전하여 아래 그림과 같이 나타는 예제입니다. 행렬의 번호가 [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);
        
        
    }
 
}