그리디 문제
-
부호가 있다면 뒤에 나오는 +
부호를 다 -
로 바꿔주면 된다.55-50+40
라면 55-(50+40)
처리를 해서 55-50-40
로 바꿔주는 식num=""
초기화를 해준다.-
부호가 나온다면 minusFlag=true
로(1번 처리를 위해+num
에 추가해준다.#include <iostream>
#include <string>
using namespace std;
int main(void)
{
string s;
cin >> s;
int answer = 0;
string num="";
bool minusFlag = false;
for (int i = 0; i < s.size(); i++)
{
if (s[i] == '-' || s[i] == '+')
{
if (minusFlag) answer -= stoi(num);
else answer += stoi(num);
num = "";
if (s[i] == '-') minusFlag = true;
}
else if ('0' <= s[i] && s[i] <= '9')
{
num += s[i];
}
}
if (minusFlag) answer -= stoi(num);
else answer += stoi(num);
cout << answer << endl;
return 0;
}