programmers

[JAVA] 정수를 나선형으로 배치하기

아잠만_ 2024. 6. 28. 15:43

양의 정수 n이 매개변수로 주어집니다. n × n 배열에 1부터 n2 까지 정수를 인덱스 [0][0]부터 시계방향 나선형으로 배치한 이차원 배열을 return 하는 solution 함수를 작성해 주세요

class Solution {
    public int[][] solution(int n) {
        int[][] answer = new int[n][n];
        // 첫번째 줄
        int num = 1;
        int minrow = 0;
        int mincol = 0;
        int maxrow = n-1;
        int maxcol = n-1;
        while(num<=n*n){
            // 오른쪽
            for(int i=mincol; i<=maxcol; i++){
                answer[minrow][i]=num++;
            }
            // 아래
            for(int i=minrow+1; i<=maxrow; i++){
                answer[i][maxcol]=num++;
            }
            // 왼쪽
            for(int i=maxcol-1; i>=mincol; i--){
                answer[maxrow][i]=num++;
            }
            // 위
            for(int i=maxrow-1; i>=minrow+1; i--){
                answer[i][mincol]=num++;
            }
            minrow++;
            mincol++;
            maxrow--;
            maxcol--;
        }
        return answer;
    }
}