- 2차원 배열을 입력 받아 90도 회전한 결과 값을 리턴해야한다.
- 가로와 세로의 길이는 같을 수 있고 다를 수도 있다.
- 90도로 여러 번 회전 시킬 수 있다.
const rotateMatrix = (matrix, k = 1) => {
// base case
if(matrix.length === 0) {
return [];
}
// k번까지 회전
for(let i = 0; i < k; i++) {
matrix = rotate(matrix);
}
return matrix;
}
const rotate = (matrix) => {
// 90도로 회전된 결과를 리턴 할 배열 변수 생성
let result = [];
// matrix 탐색
// 1x1 matrix의 경우를 고려해서 i는 matrix[0].length까지 탐색한다.
// matrix.length까지 탐색하게 되면 가로와 세로 길이가 다른 경우 원하는 값을 얻을 수 없다.
for(let i = 0; i < matrix[0].length; i++) {
// 90도로 회전한 행을 넣을 배열 변수 생성
let rotatedArr = [];
// 역순으로 matrix 탐색
for(let j = matrix.length - 1; j >= 0; j++) {
rotatedArr.push(matrix[j][i]);
}
result.push(rotatedArr);
}
return result;
}