-
Solving the usaco transform problem in c++ALGORITHM/USACO 2019. 8. 11. 22:27728x90
오래걸렸다.
첫째. 입력을 받는 방식을 완전히 마스터 하지 못했다.
둘째. c++에서 array를 다루는 부분이 매우 약했다.
char**, char[][],vector, string[], string*를 쓰며 계속계속 배열 범위를 초과하는 문제를 해결해나갔다.
#include <fstream> #include <string> using namespace std; bool check(string* input, string* mirror, int N) { for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { if (input[i][j] != mirror[i][j]) return false; } } return true; } string* rot(string* input, int N) { string* dummy = new string[N]; for (int i = 0; i < N; i++) { dummy[i] = input[i]; } for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { dummy[j][N - i - 1] = input[i][j]; } } return dummy; } string* reflect(string* input, int N) { string* dummy = new string[N]; for (int i = 0; i < N; i++) { dummy[i] = input[i]; } for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { dummy[i][N - j - 1] = input[i][j]; } } return dummy; } int main() { ofstream fout("transform.out"); ifstream fin("transform.in"); int N; string x; string* num1; string* num2; string* num3; string* num4; string* num5_1; string* num5_2; string* num5_3; fin >> N; string input[13]; string mirror[13]; for (int i = 0; i < N; i++) { fin >> x; input[i] = x; } for (int i = 0; i < N; i++) { fin >> x; mirror[i] = x; } num1 = rot(input, N); num2 = rot(num1, N); num3 = rot(num2, N); num4 = reflect(input, N); num5_1 = reflect(num1, N); num5_2 = reflect(num2, N); num5_3 = reflect(num3, N); if (check(num1, mirror, N)) { //90 fout << 1 << endl; } else if (check(num2, mirror, N)) { fout << 2 << endl; } else if (check(num3, mirror, N)) { fout << 3 << endl; } else if (check(num4, mirror, N)) { fout << 4 << endl; } else if (check(num5_1, mirror, N)) { fout << 5 << endl; } else if (check(num5_2, mirror, N)) { fout << 5 << endl; } else if (check(num5_3, mirror, N)) { fout << 5 << endl; }else if (check(input, mirror, N)) { fout << 6 << endl; } else { fout << 7 << endl; } return 0; }
'ALGORITHM > USACO' 카테고리의 다른 글
Solving USACO palsquare problem in c++ (0) 2019.08.12 Solving USACO Name That Number problem in c++ (0) 2019.08.11 Milking Cows /c++ (0) 2019.08.11 Broken Necklace /c++ (0) 2019.08.11 Friday the Thirteenth /c++ (0) 2019.08.11