Computer Science/Algorithm Problem

백준] 5026 - 박사 과정(ACM-ICPC Regional)

TwinParadox 2018. 3. 4. 09:48
728x90

시간 제한 : 1초

메모리 제한 : 128MB




입력

첫째 줄에 문제의 개수 N이 주어진다. (1 ≤ N ≤ 1000) 다음 N개 줄에는 "a+b"형식의 덧셈 문제나 "P=NP"가 주어진다. a,b ∈ [0,1000]이며 a와 b는 정수이다.




출력

P=NP가 문제인 경우에는 skipped를, 덧셈 문제인 경우에는 덧셈한 결과를 출력한다.




소스코드

#include <iostream>
#include <string>
using namespace std;
int main(void)
{
	int n;
	string s;
	cin >> n;
	while (n--)
	{
		cin >> s;
		if (s == "P=NP")
			cout << "skipped\n";
		else
		{
			int ans, sub;
			string a, b;
			int len = s.length();
			for (int i = 0; i < len; i++)
			{
				if (s[i] == '+')
				{
					sub = i + 1;
					break;
				}
			}
			a = s.substr(0, sub);
			b = s.substr(sub, len - sub);
			ans = stoi(a) + stoi(b);
			cout << ans << '\n';
		}
	}
}




Tip

문자열 처리만 할 줄 알면 되고, C++11부터 표준으로 제공되는 stoi를 이용하면 숫자 변환도 쉽게 가능하다.


728x90