Computer Science/Algorithm Problem

백준] 5426 - 비밀 편지(ACM-ICPC Reginoal)

TwinParadox 2017. 12. 26. 22:04
728x90

시간 제한 : 1초

메모리 제한 : 128MB




입력

첫째 줄에 테스트 케이스의 개수가 주어진다. 테스트 케이스의 수는 최대 100개이다.


각 테스트 케이스는 한 줄로 이루어져 있으며, 암호화된 편지가 주어진다. 편지는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 1보다 크거나 같고, 10,000보다 작거나 같으며, 항상 제곱수이다.




출력

각 테스트 케이스마다 원래 메시지를 출력한다.




소스코드

#include <iostream>
#include <string>
#include <math.h>
using namespace std;
int main(void)
{
	int t, len, size;
	char arr[100][100];
	cin >> t;
	while (t--)
	{
		string s;
		cin >> s;
		len = s.length();
		size = sqrt(len);
		for (int i = 0; i < size; i++)
			for (int j = 0; j < size; j++)
				arr[i][j] = (char)s[size*i + j];
		for (int i = 0; i < size; i++)
			for (int j = 0; j < size; j++)
				cout << arr[j][size - i - 1];
		cout << '\n';
	}
}




Tip

배열과 반복문 활용에 초점을 두고 풀어나가면 쉽게 풀 수 있다. 이중 배열 활용에 초점을 두자.


728x90