Programming Solve/BOJ
BOJ 1541 잃어버린 괄호 / C++
msm1029
2021. 7. 16. 22:43
반응형
문제 링크 : https://www.acmicpc.net/problem/1541
1541번: 잃어버린 괄호
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다
www.acmicpc.net
문제 풀이 및 코드
주석 참고
// '-'가 나온 시점부터 음수이므로
// '-'가 나올때까지 모두 더하고 '-'가 나오면 모두 뺀다.
#include <iostream>
#include <string>
using namespace std;
int main() {
string equation;
cin >> equation;
string tmp = "";
bool neg = false; //음수 시작
int answer = 0;
for (int i = 0; i < equation.size(); i++) {
if (equation[i] == '+' || equation[i] == '-') {
if (neg) answer -= stoi(tmp);
else answer += stoi(tmp);
tmp = "";
if (equation[i] == '-') neg = true;
}
else {
tmp += equation[i];
}
}
if (neg) answer -= stoi(tmp);
else answer += stoi(tmp);
cout << answer;
}
반응형