코딩 테스트 공부를 하다가 2차원 배열을 회전하는 함수를 작성해야 했다.
풀이과정에서 만든 함수를 머리속에 익혀두고자 블로그에 남겨본다.
MXM 크기를 가지는 2차원 벡터 배열이 있을 때, 이를 회전하는 함수이다.
/* 2차원 배열을 90도씩 회전하는 함수 */
int m = map.size();
vector<vector<int>> rotate_90(vector<vector<int>> graph) {
// 회전된 배열을 저장하고 return하는 벡터
vector<vector<int>> newGraph(m, vector<int>(m, 0));
for(int i=0;i<m;i++){
for(int j=0;j<m;j++){
// 시계방향 90도
newGraph[i][j] = graph[m - j - 1][i];
// 반시계방향 90도
newGraph[i][j] = graph[j][m - j - 1];
}
}
return newGraph;
}