You will be fine

<Algorithm> 140. 배열의 회전

by BFine
반응형

1. 배열의 회전 정리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93

public class Test {
    static int[][] arr;
    public static void main(String[] args) {
        
        arr = new int[][]{{1,2,3},{4,5,6},{7,8,9}};
        int temp[][] = new int[3][3];
        for(int i = 0; i < 3; i++) {
            temp[i] = arr[i].clone();
        }
        
        print();
        
        System.out.println("-----");
        System.out.println();
        
        /* 배열의  대칭*/
        /* (0,1) -> (1,0)
           (0,2) -> (2,0)
           (0,3) -> (3,0) */
        for(int i = 0; i < 3; i++) {
            for(int j = 0; j < 3; j++) {
                
                if(i==j) continue;
                arr[i][j] = temp[j][i]; 
            }
        }
        
        print();
        
        /* 배열의 세로 */
        for(int i = 0; i < 3; i++) {
            for(int j = 0; j < 3; j++) {
                
                arr[i][j] = temp[j][i]; 
            }
        }
        
        print();
        
        int len = 3-1;
        
        /* 배열의 90도 회전*/
        /* (0,0) -> (2,0)
           (0,1) -> (1,0)
           (0,2) -> (0,0) */
        for(int i = 0; i < 3; i++) {
            for(int j = 0; j < 3; j++) {
                arr[i][j] = temp[len-j][i]; 
            }
        }
        
        print();
        
        /* 배열의 180도 회전*/
        /* (0,0) -> (2,2)
           (0,1) -> (2,1)
           (0,2) -> (2,0) */
        for(int i = 0; i < 3; i++) {
            for(int j = 0; j < 3; j++) {
                arr[i][j] = temp[len-i][len-j]; 
            }
        }
        
        print();
        
        /* 배열의 270도 회전*/
        /* (0,0) -> (0,2)
           (0,1) -> (1,2)
           (0,2) -> (2,2) */
        for(int i = 0; i < 3; i++) {
            for(int j = 0; j < 3; j++) {
                arr[i][j] = temp[j][len-i]; 
            }
        }
        
        print();
        
        
    }
    
    public static void print() {
        for(int i = 0; i < 3; i++) {
            for(int j = 0; j < 3; j++) {
                System.out.print(arr[i][j]+" ");
            }
            System.out.println();
        }
        System.out.println();
    }
}
 
cs

반응형

블로그의 정보

57개월 BackEnd

BFine

활동하기