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