반응형
https://leetcode.com/problems/spiral-matrix-ii/
1. 2022.03.31 시도
소요시간: 5분
class Solution {
private String[] d = new String[]{"RIGHT", "DOWN", "LEFT", "UP"};
public int[][] generateMatrix(int n) {
int rowSize = n;
int colSize = n;
int p = 0;
int q = -1;
int[][] matrix = new int[n][n];
int directionIndex = 0;
int number = 1;
while( rowSize != 0 || colSize != 0) {
String direction = d[directionIndex];
switch(direction) {
case "RIGHT":
for (int i=0; i<colSize; i++) {
matrix[p][++q] = number++;
}
rowSize--;
break;
case "DOWN":
for (int i=0; i<rowSize; i++) {
matrix[++p][q] = number++;
}
colSize--;
break;
case "LEFT":
for (int i=0; i<colSize; i++) {
matrix[p][--q] = number++;
}
rowSize--;
break;
case "UP":
for (int i=0; i<rowSize; i++) {
matrix[--p][q] = number++;
}
colSize--;
break;
}
directionIndex = (directionIndex + 1) % 4;
}
return matrix;
}
}
풀이 접근 과정
바로 직전에 풀었떤 문제와 동일한 원리였다. 방향과 크기를 조절해가면서 위치를 선정하고 그에 맞게 숫자를 순차적으로 넣어준다.
느낀점
- 코드가 쉽게 읽히면 기억도 오래남는다.
알고리즘 정리노트: .leetcode(알고리즘 문제풀이 접근)
반응형
'알고리즘 풀이' 카테고리의 다른 글
.leetcode(929. Unique Email Addresses) (0) | 2022.04.01 |
---|---|
.leetcode(885. Spiral Matrix III) (0) | 2022.03.31 |
.leetcode(54. Spiral Matrix) (0) | 2022.03.31 |
.leetcode(917. Reverse Only Letters) (0) | 2022.03.30 |
.leetcode(404. Sum of Left Leaves) (0) | 2022.03.30 |