배열회전
로직을 제대로 알고 넘어가기로 한다.
시계방향으로 90도, 180도, 270도 순으로 구현하였다.
다음은 NxM 배열을 회전하였다.
public class Rotate {
static int[][] rotate(int[][] arr, int degree){
int n = arr.length;
int m = arr[0].length;
int[][] rotate = null;
switch(degree) {
case 90:
rotate = new int[m][n];
break;
case 180:
rotate = new int[n][m];
break;
case 270:
rotate = new int[m][n];
break;
default:
break;
}
for(int i=0; i<rotate.length; i++) {
for(int j=0; j<rotate[i].length; j++) {
switch(degree) {
case 90:
rotate[i][j] = arr[n-1-j][i];
break;
case 180:
rotate[i][j] = arr[n-1-i][m-1-j];
break;
case 270:
rotate[i][j] = arr[j][m-1-i];
break;
default:
break;
}
}
}
return rotate;
}
}
PREVIOUS[알고리즘] Trie in Java