https://leetcode.com/problems/basic-calculator-ii/

Input: s = "3+2*2"
Output: 7
Input: s = " 3/2 "
Output: 1
class Solution {
public:
	int calculate(string s) {
		if (s.size() == 0) return 0 ;
		stack<int> numStack;
	
		int curNum = 0;
		char sign = '+';

		for (int i = 0; i < s.size(); ++i)
		{
			if (isdigit(s[i]))
			{
				curNum = (curNum * 10) + (s[i] - '0'); // 누적한다. 10, 100단위 등등
			}
			if (!isdigit(s[i]) && s[i] != ' ' || i == s.size() - 1)
			{
				if (sign == '+')
				{
					numStack.push(curNum);
				}
				else if (sign== '-')
				{
					numStack.push(-curNum);
				}
				else if (sign == '*')
				{
					int top = numStack.top();
					numStack.pop();
					numStack.push(top * curNum);
				}
				else if (sign == '/')
				{
					int top = numStack.top();
					numStack.pop();
					numStack.push(top / curNum);
				}
				curNum = 0;
				sign = s[i];
			}
		}
		int result = 0;
		while (!numStack.empty())
		{
			result += numStack.top();
			numStack.pop();
		}
		return result;
	}
};

Runtime: 12 ms, faster than 72.88% of C++ online submissions for Basic Calculator II.

Memory Usage: 8.6 MB, less than 56.92% of C++ online submissions for Basic Calculator II.

45~92 까지 다양하게 나온다.