본문 바로가기

Programmers/Level2

행렬 테두리 회전하기

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
class Solution {
    public int[] solution(int rows, int columns, int[][] queries) {
        int[][] matrix = new int[rows][columns];
        int[] answer = new int[queries.length];
 
        int i, j, cnt = 1;
        // 행렬 초기화
        for (i = 0; i < rows; i++) {
            for (j = 0; j < columns; j++) {
                matrix[i][j] = cnt++;
            }
        }
 
        for (i = 0; i < queries.length; i++) {
            int x1 = queries[i][0- 1;
            int y1 = queries[i][1- 1;
            int x2 = queries[i][2- 1;
            int y2 = queries[i][3- 1;
 
            // 시계 방향으로 회전
            int tmp1 = matrix[x1][y2];
            int min = tmp1;
            // 위 회전
            for (j = y2; j > y1; j--) {
                matrix[x1][j] = matrix[x1][j - 1];
                if (min > matrix[x1][j])
                    min = matrix[x1][j];
            }
            // 왼쪽 회전
            for (j = x1; j < x2; j++) {
                matrix[j][y1] = matrix[j + 1][y1];
                if (min > matrix[j][y1])
                    min = matrix[j][y1];
            }
            // 아래 회전
            for (j = y1; j < y2; j++) {
                matrix[x2][j] = matrix[x2][j + 1];
                if (min > matrix[x2][j])
                    min = matrix[x2][j];
            }
            // 오른쪽 회전
            for (j = x2; j > x1 + 1; j--) {
                matrix[j][y2] = matrix[j - 1][y2];
                if (min > matrix[j][y2])
                    min = matrix[j][y2];
            }
            matrix[j][y2] = tmp1;
            if (min > matrix[j][y2])
                min = matrix[j][y2];
            answer[i] = min;
        }
        return answer;
    }
}
cs

시계 방향으로 회전해야 변수 하나로 처리할 수 있다.

'Programmers > Level2' 카테고리의 다른 글

모음 사전  (0) 2021.10.09
가장 먼 노드  (0) 2021.08.08
거리두기 확인하기  (0) 2021.08.07
배달  (0) 2021.08.06
adenCase 문자열 만들기  (0) 2021.08.06