728x90
반응형
N x N 크기의 2D 배열을 나선형 순서로 채우는 것입니다. 배열은 왼쪽 위에서 시작하여 시계 방향으로 나선형으로 숫자를 배치합니다.
int[][] solution(int n) {
int[][] matrix = new int[n][];
for(int i = 0;i<n;i++){
matrix[i] = new int[n];
}
int num = 1;
int top = 0, bottom = n-1, left = 0, right = n-1;
while(num <= n* n){
for(int i = left;i<=right;i++){
matrix[top][i] = num++;
}
top++;
for(int i = top;i<=bottom;i++){
matrix[i][right] = num++;
}
right--;
for(int i = right;i>=left;i--){
matrix[bottom][i] = num++;
}
bottom--;
for(int i = bottom;i>=top;i--){
matrix[i][left] = num++;
}
left++;
}
return matrix;
}
나선형으로 배열을 채우기 위해 상, 하, 좌, 우의 경계를 설정하고, 각 방향으로 순차적으로 숫자를 채워 넣습니다.
728x90
반응형
'CodeSignal' 카테고리의 다른 글
Circle of Numbers (0) | 2024.02.05 |
---|---|
Sudoku (0) | 2024.01.31 |
messageFromBinaryCode (1) | 2024.01.14 |
File Naming (0) | 2024.01.13 |
Count pairs in array whose sum is divisible by K (0) | 2024.01.10 |