#include <iostream>
#include <string>
using namespace std;
int num = 0;
int flag = 0;
int m = 0;
string tmp = "";
string s;
void solve()
{
for (int i = 0; i < s.size(); i++)
{
if (s[i] == '+' || s[i] == '-' ||i==(s.size()-1))
{
if (i == s.size() - 1)
{
tmp += s[i];//문자열 합치기
}
if (flag)//이상황은 이전문자열에서 -한번나왔을때
{
num -= stoi(tmp);
tmp = "";
}
else
{
num += stoi(tmp);
tmp = "";
}
if (s[i] == '-')
{
flag = 1;
}
}
else //
{
tmp += s[i];//문자열 합치기
}
}
}
int main(int argc, char* argv[])
{
cin >> s;
solve();
cout << num << endl;
return 0;
}
일단 기본적으로
1]string tmp를 통해서 전체문자열에서 특정부분 합치기
2] + 나 - 해당되는 경우에 flag변수를 통해서,
flag가 1인경우에는 빼고, 0인 경우에는 더한다.
3]연산자가 연속해서 나타나는 경우는 없는데, 맨앞의 숫자빼고 다 -해버리면 가장 작은 최소값의 내용이 나오게된다.
즉, else 문은 한번만 들어오게 된다(맨처음일때)
문자열 처리 받아올때,
전체 반복문 돌리면서
특정조건 아닐때
string stemp += s[i]; 를 해주면서,
만족하는 조건이후 stemp = "";초기화 작업을 한다.ㅣ