알고리즘 풀이
.leetcode(48. Rotate Image)
silvergoni
2021. 1. 18. 21:58
반응형
문제
https://leetcode.com/problems/rotate-image/
문제 풀기 전
- 반시계로 돌릴 수 있을가 했는데 왠지 복잡할거 같다.
- swap을 하면되겠다.
- 내려가는 대각선으로 한번, 좌우로 한번
직접 푼 풀이
소요시간: 8분(21:17 ~ 21:25) 30분(21:27 ~ 21:57)
#대각선 한번 + 좌우로 한번 회전
class Solution {
public void rotate(int[][] matrix) {
for (int i=0; i<matrix.length; i++) {
for (int j=i+1; j<matrix[i].length; j++) {
int temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
int n = matrix.length;
for (int i=0; i<matrix.length; i++) {
for (int j=0; j<matrix[i].length/2; j++) {
int temp = matrix[i][j];
matrix[i][j] = matrix[i][n-j-1];
matrix[i][n-j-1] = temp;
}
}
}
}
#반시계방향으로 회전
class Solution {
public void rotate(int[][] matrix) {
int n = matrix.length;
for(int i=0; i<n/2; i++) {
for (int j=0; j<n-n/2; j++) {
//0,0 -> n-1,0
int temp = matrix[n-1-j][i];
matrix[n-1-j][i] = matrix[n-1-i][n-1-j];
matrix[n-1-i][n-1-j] = matrix[j][n-1-i];
matrix[j][n-1-i] = matrix[i][j];
matrix[i][j] = temp;
}
}
}
}
느낀점
- 생각한대로 잘 풀리는 문제였다.
- 솔루션도 별다른게 없었다.