https://www.acmicpc.net/problem/1541
#include <iostream>
#include <vector>
#include <string>
#include <ctype.h>
using namespace std;
int main() {
string expr; cin >> expr;
vector<int> num;
vector<char> oper;
string str = "";
for (int i = 0; i < expr.size(); i++) {
if ('0' <= expr[i] && expr[i] <= '9') {
str.push_back(expr[i]);
}
else {
num.push_back(stoi(str));
str = "";
oper.push_back(expr[i]);
}
}
num.push_back(stoi(str));
int answer = num[0];
for (int i = 1; i < num.size(); i++) {
if (oper[i-1] == '+') {
answer += num[i];
}
else {
int minus = num[i++];
while (i < num.size() && oper[i - 1] == '+') {
minus += num[i];
i++;
}
i--;
answer -= minus;
}
}
cout << answer << endl;
return 0;
}
'전공공부 > 코딩테스트' 카테고리의 다른 글
(c++) 프로그래머스 "섬 연결하기" (0) | 2022.06.08 |
---|---|
(c++) 백준 "1780) 종이의 개수" (0) | 2022.06.07 |
(c++) 백준 "1260) DFS와 BFS" (0) | 2022.06.07 |
(c++) 백준 "11727) 2xn 타일링2" (0) | 2022.06.07 |
(c++) 백준 "9461) 파도반 수열" (0) | 2022.06.06 |