SW ExpertAcademy/D2
1961. 숫자 배열 회전
Programmer.
2018. 12. 1. 01:23
1961. 숫자 배열 회전
문제출처: https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5Pq-OKAVYDFAUq&categoryId=AV5Pq-OKAVYDFAUq&categoryType=CODE
풀이 방법
<코드>
#include<iostream> using namespace std; int main(int argc, char** argv) { int test_case; int T; cin >> T; for (test_case = 1; test_case <= T; ++test_case) { int input{ 0 }; std::cin >> input; int* original = new int[input*input]{ 0, }; for (int i = 0; i < input; i++) for (int j = 0; j < input; j++) std::cin >> original[i*input + j]; int* degree90 = new int[input*input]{ 0, }; for (int i = 0; i < input; i++) //90deg for (int j = 0; j < input; j++) degree90[input - 1 - i + input * j] = original[i*input + j]; int* degree180 = new int[input*input]{ 0, }; for (int i = 0; i < input*input; i++) //180deg degree180[i] = original[input*input - 1 - i]; int* degree270 = new int[input*input]{ 0, }; for (int i = 0; i < input; i++) //270deg for (int j = 0; j<input; j++) degree270[input*(input-1)+i -input*j] = original[i*input + j]; std::cout << "#" << test_case << "\n"; for (int i = 0; i < input; i++) { for (int j = 0; j < input; j++) std::cout << degree90[j + input * i]; std::cout << " "; for (int j = 0; j < input; j++) std::cout << degree180[j + input * i]; std::cout << " "; for (int j = 0; j < input; j++) std::cout << degree270[j + input * i]; std::cout << "\n"; } } return 0;//정상종료시 반드시 0을 리턴해야합니다. }