정사각형의 matrix를 시계방향, 시계반대방향으로 회전시키기.
입력
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
============
시계방향
13 9 5 1
14 10 6 2
15 11 7 3
16 12 8 4
============
반시계방향
4 8 12 16
3 7 11 15
2 6 10 14
1 5 9 13
public class ArrayRotate {
public static void main(String[] args) {
int arr[][] = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
int result[][] = new int[arr.length][arr[0].length];
System.out.println("입력");
print(arr);
System.out.println("============");
System.out.println("시계방향");
result = rotateClockwise(arr);
print(result);
System.out.println("============");
System.out.println("반시계방향");
result = rotateAnticlockwise(arr);
print(result);
}
public static int[][] rotateClockwise(int arr[][]){
int result[][] = new int[arr.length][arr.length];
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length; j++) {
//result[i][j] = arr[j][arr.length-1 -i];
result[j][arr.length-1 -i] = arr[i][j];
}
}
return result;
}
public static int[][] rotateAnticlockwise(int arr[][]){
int result[][] = new int[arr.length][arr.length];
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length; j++) {
result[i][j] = arr[j][arr.length-1-i];
}
}
return result;
}
public static void print(int arr[][]) {
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length; j++) {
System.out.printf("%3d", arr[i][j]);
}
System.out.println("");
}
}
}
'Tech-Algorithm' 카테고리의 다른 글
동적프로그래밍 - 배낭 채우기 문제(Knapsack Problem) (0) | 2022.06.14 |
---|---|
Spiral Matrix (0) | 2018.07.12 |
댓글