Google 태그 관리자 아이콘

알고리즘 풀이

.leetcode(48. Rotate Image)

silvergoni 2021. 1. 18. 21:58
반응형

문제

https://leetcode.com/problems/rotate-image/

문제 풀기 전

  1. 반시계로 돌릴 수 있을가 했는데 왠지 복잡할거 같다.
  2. swap을 하면되겠다.
  3. 내려가는 대각선으로 한번, 좌우로 한번

직접 푼 풀이

소요시간: 8분(21:17 ~ 21:25) 30분(21:27 ~ 21:57)

#대각선 한번 + 좌우로 한번 회전
class Solution {
    public void rotate(int[][] matrix) {
        for (int i=0; i<matrix.length; i++) {
            for (int j=i+1; j<matrix[i].length; j++) {
                int temp = matrix[i][j];
                matrix[i][j] = matrix[j][i];
                matrix[j][i] = temp;
            }
        }

        int n = matrix.length;
        for (int i=0; i<matrix.length; i++) {
            for (int j=0; j<matrix[i].length/2; j++) {
                int temp = matrix[i][j];
                matrix[i][j] = matrix[i][n-j-1];
                matrix[i][n-j-1] = temp;
            }
        }
    }
}

#반시계방향으로 회전
class Solution {
    public void rotate(int[][] matrix) {
        int n = matrix.length;
        for(int i=0; i<n/2; i++) {
            for (int j=0; j<n-n/2; j++) {
                //0,0 -> n-1,0
                int temp = matrix[n-1-j][i];
                matrix[n-1-j][i] = matrix[n-1-i][n-1-j];
                matrix[n-1-i][n-1-j] = matrix[j][n-1-i];
                matrix[j][n-1-i] = matrix[i][j];
                matrix[i][j] = temp;
            }
        }
    }
}

느낀점

  1. 생각한대로 잘 풀리는 문제였다.
  2. 솔루션도 별다른게 없었다.

누적되는 알고리즘 접근 설명서

2021/01/09 - [알고리즘 풀이] - .leetcode(알고리즘 문제풀이 접근)