구현력을 올리기 위해 쉬운 문제부터 풀고 있다.
배열을 90도, 180도, 270도 회전해서 출력해주면 된다.
나는 90, 180, 270을 한 행에 전부 써주고 출력하고 다시 써주고 출력하고를 반복했다.
#include <bits/stdc++.h>
using namespace std;
string s;
int ar[8][8], n;
string f1(int cur) {
string ret;
for (int i = n - 1; i >= 0; --i) {
ret += to_string(ar[i][cur]);
}
return ret;
}
string f2(int cur) {
string ret;
cur = n - cur - 1;
for (int i = n - 1; i >= 0; --i) {
ret += to_string(ar[cur][i]);
}
return ret;
}
string f3(int cur) {
string ret;
cur = n - cur - 1;
for (int i = 0; i < n; ++i) {
ret += to_string(ar[i][cur]);
}
return ret;
}
int main() {
//ios::sync_with_stdio(false); cin.tie(0);
int TC;
cin >> TC;
for (int tc = 1; tc <= TC; ++tc) {
cin >> n;
for (int i = 0; i < n; ++i)
for (int j = 0; j < n; ++j)
cin >> ar[i][j];
cout << '#' << tc << '\n';
for (int j = 0; j < n; ++j) {
s = "";
s += f1(j);
s += ' ';
s += f2(j);
s += ' ';
s += f3(j);
cout << s << '\n';
}
}
return 0;
}
f1은 90도 회전, f2는 180도 회전, f3은 270도 회전 함수이다. C++에서는 문자열 합치기가 굉장히 쉬워서 쉽게 풀었던 것 같다.
'SWEA' 카테고리의 다른 글
SWEA 1974 스도쿠 검증 (0) | 2020.10.29 |
---|---|
SWEA 1859 백만 장자 프로젝트 (0) | 2020.10.28 |