문제
LeetCode 48. Rotate Image
https://leetcode.com/problems/rotate-image/
언어
자바스크립트(JavaScript)
접근 방법
- 가장 밖 테두리의 숫자들 배열을 먼저 바꾸며 점점 작은 테두리의 숫자들 배열을 바꾼다.
- 테두리의 숫자들 배열을 바꿀 때 왼쪽 위의 숫자부터 오른쪽 위의 숫자까지 차례로 배열을 바꾼다.
코드
/**
* @param {number[][]} matrix
* @return {void} Do not return anything, modify matrix in-place instead.
*/
var rotate = function(matrix) {
let size = Math.ceil(matrix.length /2);
for (let i=0; i<size; i++){
let rIdx = (size-1) - i;
let cIdx = (size-1) - i;
let len = 2*i + (matrix.length%2 === 0? 1 : 0);
for (let j=0; j< len; j++){
let temp = matrix[rIdx][cIdx + j];
matrix[rIdx][cIdx + j] = matrix[rIdx+ len - j][cIdx];
matrix[rIdx+ len - j][cIdx] = matrix[rIdx+ len][cIdx + len - j];
matrix[rIdx+ len][cIdx + len - j] = matrix[rIdx + j][cIdx + len];
matrix[rIdx + j][cIdx + len] = temp;
};
};
return matrix;
};
결과
Runtime: 76 ms, faster than 77.17% of JavaScript online submissions for Rotate Image.
Memory Usage: 39.2 MB, less than 21.67% of JavaScript online submissions for Rotate Image.
복기
- 너무 복잡한거 같아서 답이 아닌 줄 알았는데, 맞았다.
- 별도의 알고리즘 없이 차분하게 코드를 짜면 풀 수 있는 문제이다.
'개발 공부 > 알고리즘 문제 풀이' 카테고리의 다른 글
[LeetCode] 22. Generate Parentheses (0) | 2021.06.24 |
---|---|
[LeetCode] 19. Remove Nth Node From End of List (0) | 2021.06.24 |
[LeetCode] 17. Letter Combinations of a Phone Number (0) | 2021.06.24 |
[LeetCode] 15. 3Sum (0) | 2021.06.24 |
[LeetCode] 92. Reverse Linked List II (0) | 2021.06.24 |