(cpp) Baekjoon 1541번 문제 ‘잃어버린 괄호’ - 그리디 알고리즘

Baekjoon 1541번 문제 ‘잃어버린 괄호’ - 그리디 알고리즘


문제

풀이

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
using namespace std;
string str;
string sum;
int result;
bool Minus;

//수식을 입력받는다 
//-기호가 나오면 그 이후의 기호는 모두 -로 바꾼다. --> Minus계산하는 if문만 돌도록

int main() {
	cin >> str;
	result = 0;
	for (int i = 0; i <= str.length(); i++) {
		if (str[i] == '+' || str[i] == '-' || i==str.length()) {
			if (Minus) {
				result -= stoi(sum); 
				//cout << stoi(sum) << " ";
				sum = "";

			}
			else {
				result = result + stoi(sum); 
				//cout << stoi(sum) << " ";
				sum = ""; 
			}
		}

		else {
			sum = sum + str[i]; //5 -> 50
			//cout << sum <<" ";
		}

		if (str[i] == '-') {
			Minus = 'true';
		}
	}
	cout << result;

}