양의 정수 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;
}
}
'programmers' 카테고리의 다른 글
[JAVA] x 사이의 개수 - split() (0) | 2024.06.28 |
---|---|
[JAVA] 문자열 잘라서 정렬하기 (0) | 2024.06.28 |
[JAVA] ☆연속된 수의 합 (0) | 2024.06.27 |
[JAVA] 이진수 더하기 - Integer.toBinaryString() (0) | 2024.06.27 |
[JAVA] 평행 (0) | 2024.06.27 |