https://school.programmers.co.kr/learn/courses/30/lessons/120902
stringstream을 알게되었으므로 stringstream으로 파싱하였다. 처음 숫자를 빼면 그 뒤로는 연산자 숫자 의 반복이므로 첫 숫자만 따로 파싱 후 while문으로 파싱하였다.
#include <string>
#include <vector>
#include <sstream>
using namespace std;
int solution(string my_string) {
int answer = 0;
stringstream ss(my_string);
ss >> answer;
while(ss)
{
string o;
int b;
ss >> o >> b;
if(o == "+")
answer += b;
else if(o == "-")
answer -= b;
}
return answer;
}
#include <string>
#include <vector>
#include <sstream>
using namespace std;
int solution(string my_string) {
int answer = 0;
stringstream stream;
stream.str(my_string);
vector<int> a;
int b;
vector<string> c;
string d;
stream >> b;
answer += b;
while(stream)
{
stream >> d;
stream >> b;
a.push_back(b);
c.push_back(d);
d.clear();
b = 0;
}
for(int i = 0; i < a.size(); i++)
{
if(c[i] == "+")
answer += a[i];
else if(c[i] == "-")
answer -= a[i];
}
return answer;
}
파싱하면서 숫자와 연산자를 vector에 담아놓고 전부 파싱한 뒤 계산하였다.