백준/C++
[C++] 백준 1541번 - 잃어버린 괄호
꿩꿩
2024. 6. 25. 23:38
728x90
문제 1541번
https://www.acmicpc.net/problem/1541
식의 값을 최소로 만들기 위해서 +먼저 계산해준다.
기호가 들어온다면 -인지 아닌지 구분해서 sum에 계산을 해주고 temp를 비어준다. 여기서 string이기 때문에 int로 바꿔주기 위해 stoi()를 한다. 만약 -가 들어온다면 -여부를 판단해주는 mcheck를 true로 바꿔준다.
숫자가 들어온다면 temp에 숫자를 추가해준다.
그렇게 반복문을 다 돌고 계산이 끝나면 sum을 출력한다.
#include <iostream>
#include <string>
using namespace std;
int main() {
string str, temp;
cin >> str;
int sum = 0;
bool mcheck = false; //-여부
for (int i = 0; i <= str.size(); i++) {
if (str[i] == '+' || str[i] == '-' || i == str.size()) {
if (mcheck == false) {
sum += stoi(temp);
temp = "";
}
else {
sum -= stoi(temp);
temp = "";
}
}
else {
temp += str[i];
}
if (str[i] == '-') {
mcheck = true;
}
}
cout << sum;
return 0;
}
728x90