박종훈 알고리즘 블로그

(Leetcode) 48 - Rotate Image 풀이

기회가 되어 달레님의 스터디에 참여하여 시간이 될 때마다 한문제씩 풀어보고 있다.

https://neetcode.io/practice


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

내가 작성한 풀이

rotate 가 진행될 때 어떤 아이템이 어디로 이동되는지 확인하고 그것을 일반화해서 해결하였다. 실제 배열과 수학 행렬을 매칭시켜주는게 다소 헷갈리기 때문에 변수와 위치 정의를 잘 해두면 좋을 것 같다.

class Solution {
    public void rotate(int[][] matrix) {
        int l = matrix.length;

        int limit = (int) Math.ceil((double) l / 2);
        for (int i = 0; i < limit; i++) {
            for (int j = i; j < l - 1 - i; j++) {
                int temp = matrix[i][j];
                matrix[i][j] = matrix[l - j - 1][i];
                matrix[l - j - 1][i] = matrix[l - i - 1][l - j - 1];
                matrix[l - i - 1][l - j - 1] = matrix[j][l - i - 1];
                matrix[j][l - i - 1] = temp;
            }
        }
    }
}

TC, SC

시간 복잡도는 O(n^2) 공간 복잡도는 O(1) 이다.

categories: 스터디-알고리즘

tags: 자바 , java , 리트코드 , Leetcode , 알고리즘 , array , matrix