2022년 04월 13일 수요일 - 아우 졸려


오늘 올려볼 문제는 59번 Spiral Matrix II 이라는 문제이다.


사진을 클릭하면 해당 문제로 이동합니다.

leetcode 문제 사진

오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.

편함을 위해 속도를 희생했다


입력


사진에서도 볼 수 있듯이 int 값 1개가 입력으로 들어온다.



풀이 및 코드


n * n 크기의 2차원 배열에 오른쪽으로 회전하면서 값을 채우고 리턴하는 문제다.


오늘은 처음부터 정답을 생각해냈다.

가는 방향에 대한 값을 미리 정의해두고 try catch를 써서 문제를 풀었다.


이제 코드를 봐보자!


풀이코드

class Solution {
    public int[][] generateMatrix(int n) {
        int[][] result = new int[n][n];

        int[] x = {1, 0, -1, 0};
        int[] y = {0, 1, 0, -1};
        int index = 0, yIndex = 0, xIndex = 0;
        int i = 1;

        while(i <= n * n)
        {
            try
            {
                if(result[yIndex][xIndex] > 0) throw new Exception("");

                result[yIndex][xIndex] = i++;

                xIndex += x[index];
                yIndex += y[index];
            }
            catch(Exception e)
            {
                xIndex -= x[index];
                yIndex -= y[index];

                index++;
                index %= 4;

                xIndex += x[index];
                yIndex += y[index];
            }
        }

        return result;
    }
}




제출 화면

leetcode 문제 맞았습니다


오늘은 문제 풀기가 좀 귀찮아서 속도를 희생했다.

내일은 좀 덜 귀찮은 문제가 나왔으면 좋겠다.


내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.

+ Recent posts