알고리즘 풀이
.leetcode(59. Spiral Matrix II)
silvergoni
2022. 3. 31. 09:02
반응형
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(알고리즘 문제풀이 접근)
반응형