Computer Science/Algorithm Problem

백준] 9093 - 단어 뒤집기(ACM-ICPC 2001)

TwinParadox 2017. 12. 13. 23:16
728x90

시간 제한 : 1초

메모리 제한 : 128MB




입력

첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 공백이 하나 있다.




출력

각 테스트 케이스에 대해서, 입력으로 주어진 문장의 단어를 모두 뒤집어 출력한다.




소스코드

#include <iostream>
#include <string>
using namespace std;
int main(void)
{
	int t, len, st, size;
	cin >> t;
	cin.ignore();
	while (t--)
	{
		string arr;
		getline(cin, arr);
		st = 0, size = arr.size();
		for (int i = 0; i < size; i++)
		{
			if (arr[i] == ' ')
			{
				for (int j = i - 1; j >= st; j--)
					cout << arr[j];
				cout<<" ";
				st = i + 1;
			}
		}
		for (int i = size - 1; i >= st; i--)
			cout << arr[i];
		cout << "\n";
	}
}




Tip

문자열 처리에 능하면 쉽게 풀 수 있다. string을 지원하는 C++에서는 더더욱..

728x90