행렬 회전
2025. 9. 22. 17:49ㆍ🧑🏻💻/C & C++
#include <vector>
using namespace std;
// 시계방향 90도 회전
vector<vector<int>> rotate_array_90(const vector<vector<int>>& array) {
int n = array.size();
int m = array[0].size();
vector<vector<int>> rotated(m, vector<int>(n));
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
rotated[j][n - 1 - i] = array[i][j];
}
}
return rotated;
}
// 시계방향 180도 회전
vector<vector<int>> rotate_array_180(const vector<vector<int>>& array) {
int n = array.size();
int m = array[0].size();
vector<vector<int>> rotated(n, vector<int>(m));
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
rotated[n - 1 - i][m - 1 - j] = array[i][j];
}
}
return rotated;
}
// 시계방향 270도 회전 ( == 반시계방향 90도 )
vector<vector<int>> rotate_array_270(const vector<vector<int>>& array) {
int n = array.size();
int m = array[0].size();
vector<vector<int>> rotated(m, vector<int>(n));
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
rotated[m - 1 - j][i] = array[i][j];
}
}
return rotated;
}
// 전치 행렬 (transpose)
vector<vector<int>> transpose_array(const vector<vector<int>>& array) {
int n = array.size();
int m = array[0].size();
vector<vector<int>> transposed(m, vector<int>(n));
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
transposed[j][i] = array[i][j];
}
}
return transposed;
}'🧑🏻💻 > C & C++' 카테고리의 다른 글
| [C++] map / multimap / unordered_map / unordered_multimap (0) | 2024.11.22 |
|---|---|
| [C++] 순열, 조합 (0) | 2024.10.05 |
| [C++] vector (0) | 2024.09.28 |
| [C++] Permutation, Combination (0) | 2024.08.10 |
| [C] const (0) | 2022.09.15 |