관리 메뉴

Kim's Programming

1961. 숫자 배열 회전 본문

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을 리턴해야합니다.
}

'SW ExpertAcademy > D2' 카테고리의 다른 글

1970. 쉬운 거스름돈  (0) 2018.12.01
1966. 숫자를 정렬하자  (0) 2018.12.01
1959. 두 개의 숫자열  (0) 2018.12.01
1954. 달팽이 숫자  (0) 2018.12.01
1948. 날짜 계산기  (0) 2018.12.01