APS/SWEA
1961. 숫자 배열 회전 C++
문래동까마귀
2021. 8. 27. 01:34
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
- 2차원 vector배열 함수로 넘기기, clear사용, 90도 회전시 좌표변경식
#include<iostream>
#include<vector>
#include<algorithm>
#include<string>
using namespace std;
int sun = 0;
int n;
vector<vector<string>> result(3);
void rotate(int index, vector<vector<int>>&arr) {
vector<vector<int>> temp_arr(10, vector<int>(10));
// 배열 90도 회전
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
temp_arr[i][j] = arr[abs(j - (n - 1))][i];
}
}
arr = temp_arr;
string tmp;
for (int i = 0; i < n; i++) {
for(int j=0; j<n; j++){
tmp += to_string(arr[i][j]);
}
result[index].push_back(tmp);
tmp.clear();
}
}
void run() {
sun++;
cin >> n;
vector<vector<int>> arr(n, vector<int>(n));
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> arr[i][j];
}
}
for (int i = 0; i < 3; i++) {
rotate(i, arr);
}
cout << "#" << sun << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < 3; j++) {
cout << result[j][i] << " ";
}
cout << endl;
}
for (int i = 0; i < 3; i++) {
result[i].clear();
}
}
int main() {
int t;
cin >> t;
for (int i = 0; i < t; i++)
{
run();
}
return 0;
}