#include <sstream> 과 istringstream 에 대해 더 찾아보고 공부하자.
>> 연산자를 사용해 정해진 타입에 대한 파싱이 가능!
#include <string>
#include <vector>
#include <sstream>
#include <algorithm>
using namespace std;
vector<string> solution(vector<string> quiz) {
vector<string> answer;
// quiz = ["3 - 4 = -3", "5 + 6 = 11"] / result = ["X", "O"]
for(auto& q : quiz)
{
istringstream iss(q);
char separator = ' ';
vector<string> vs;
string strBuff;
while (getline(iss, strBuff, separator))
{
// separator을 구분자로 strBuff에 문자열을 파싱한다.
vs.emplace_back(strBuff);
}
// vector(FILO)를 이용하기 위해 뒤집는다.
reverse(vs.begin(), vs.end());
int result = 0;
while (!vs.empty())
{
if(vs.back() == "+")
{
vs.pop_back();
result += stoi(vs.back());
}
else if((vs.back() == "-"))
{
vs.pop_back();
result -= stoi(vs.back());
}
else if((vs.back() == "="))
{
vs.pop_back();
result == stoi(vs.back()) ? answer.emplace_back("O") : answer.emplace_back("X");
}
else
{
result = stoi(vs.back());
}
vs.pop_back();
}
}
return answer;
}