왼쪽 배열을 시계방향으로 돌리면 오른쪽과 같습니다. 색깔대로 규칙을 확인해보면 다음과 같습니다.
이제 시계방향으로 직접적으로 돌리기 위해서 배열의 좌표 위치를 활용하겠습니다.
원래 위치 -> 시계방향 90도 돌린 후 위치는 이렇게 됩니다.
돌린 후 배열의 행은 원래 배열의 열과 같고
돌린 후 배열의 열은 (원래 배열의 최대 인덱스 - 원래 배열의 행)과 같다는 것을 알 수 있습니다. 여기서는 최대 인덱스가 2입니다.
[0,0] -> [0,2]
[0,1] -> [1,2]
[0,2] -> [2,2]
2-0 = 2
[1,0] -> [0,1]
[1,1] -> [1,1]
[1,2] -> [2,1]
2-1= 1
[2,0] -> [0,0]
[2,1] -> [1,0]
[2,2] -> [2,0]
2-2 = 0
class test{
public static void main(String[] args) {
int[][] map = {{1,2,3},{4,5,6},{7,8,9}};
int[][] map_copy = new int[map.length][map.length];
for (int i = 0; i < map.length; i++) {
for (int j = 0; j < map.length; j++) {
map_copy[i][j] = map[map.length-1-j][i];
//map_copy[i][j] = map[j][map.length-1-i];//반 시계 방향 90도
}
}
}
}
'ALGORITHM > 이론' 카테고리의 다른 글
StringBuilder란 (0) | 2023.08.23 |
---|---|
우선순위 큐 (Priority Queue) (0) | 2022.10.09 |
[Java] 2차원 배열 정렬 (0) | 2021.06.30 |
Bubble Sort. 버블정렬 (0) | 2021.01.05 |
Insertion sort. 삽입정렬 (0) | 2021.01.04 |