Computer Science/Algorithm Problem

백준] 11586 - 지영 공주님의 마법 거울(인하대학교 경시대회 2015)

TwinParadox 2017. 12. 14. 07:33
728x90

시간 제한 : 2초

메모리 제한 : 256MB




입력

첫 번째 줄에 정사각형 모양의 마법거울의 크기를 나타내는 자연수 N(2 ≤ N ≤ 100)이 입력된다. 그 다음 N개의 줄에 걸쳐 거울에 비친 지영 공주님의 원래 모습이 각 줄에 N개의 문자로 표현된다. 마법거울은 알파벳 대소문자로만 거울에 비친 상을 표현할 수 있다. 마지막 줄에 마법거울의 심리상태를 나타내는 정수 K(1 ≤ K ≤ 3)가 주어진다.




출력

마법거울의 심리상태에 따라 거울에 비친 지영공주님의 모습을 N×N크기의 정사각형 형태로 출력하라. (대칭된 모습은 입력으로 주어진 문자의 위치를 대칭시키는 것을 의미한다.)




소스코드

#include <iostream>
#include <string>
using namespace std;
int main(void)
{
	int len, dir;
	string* arr;
	cin >> len;
	arr = new string[len];
	for (int i = 0; i < len; i++)
		cin >> arr[i];
	cin >> dir;
	if (dir == 1)
	{
		for (int i = 0; i < len; i++)
			cout << arr[i] << '\n';
	}
	else if (dir == 2)
	{
		for (int i = 0; i < len; i++)
		{
			for (int j = len - 1; j >= 0; j--)
				cout << arr[i][j];
			cout << '\n';
		}
	}
	else
	{
		for (int i = len - 1; i >= 0; i--)
			cout << arr[i] << '\n';
	}
}




Tip

string을 이용해도 좋고 char 배열을 이용해도 좋다.

단순히 뒤집기 작업만 실시하는 것이므로 기본적인 지식만 있으면 해결할 수 있다.


728x90