LeetCode) 54. Spiral Matrix

유병수·2023년 5월 30일
0

54. Spiral Matrix

선형 배열, 달팽이 배열에 관한 문제이다.
타 알고리즘이랑 다른점이라면 x와 y의 좌표가 서로 다르기 때문에 탈출 조건을 잘 명시해줘야하는게 포인트.

class Solution {
    public List<Integer> spiralOrder(int[][] matrix) {
        

        int xSize = matrix[0].length;
        int ySize = matrix.length-1;

        List<Integer> answer = new ArrayList<>();


        int row = 0, col = -1;
        int inc = 1;
        int i, j;
        while (xSize > 0 || ySize >0) {
            for (i = 0; i < xSize; i++) {
                col += inc;
                answer.add(matrix[row][col]);
            }
            xSize--;
            if(ySize == 0) break;
            for (i = 0; i < ySize; i++) {
                row += inc;
                answer.add(matrix[row][col]);
            }
            inc *= -1;    
            ySize--;
            if (xSize == 0) break; 
            
        }

        return answer;
    }
}

0개의 댓글