728x90
https://www.acmicpc.net/problem/1541
최대한 숫자를 - 해야 한다.
- 뒤에 괄호를 씌우면 괄호 안에 있는 숫자들이 모두 -가 된다.
그러므로 - 가 하나라도 나타나면 뒤에 나오는 숫자들을 모두 음수로 만들면 된다.
#include <iostream>
#include <algorithm>
#include <vector>
#include <numeric>
using namespace std;
int main(){
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
string s;
int ans = 0;
vector<int> v;
vector<int> op;
vector<char> op2;
cin >> s;
string tmp = "";
bool isMinus = false;
for(int i=0; i<s.size(); i++){
if(isdigit(s[i])){
tmp += s[i];
}else{
op.push_back(stoi(tmp));
tmp = "";
op2.push_back(s[i]);
}
}
op.push_back(stoi(tmp));
ans = op[0];
for(int i=0; i<op2.size(); i++){
if(op2[i] == '-'){
isMinus = true;
ans -= op[i+1];
}
if(op2[i] == '+'){
if(!isMinus) ans += op[i+1];
else ans -= op[i+1];
}
}
cout << ans << '\n';
return 0;
}
728x90
'알고리즘 > 백준' 카테고리의 다른 글
[백준/c++] 21314번: 민겸 수 (0) | 2022.07.13 |
---|---|
[백준/c++] 20365번: 블로그2 (0) | 2022.07.13 |
[백준/c++] 1931번: 회의실 배정 (0) | 2022.07.12 |
[백준/c++] 20300번: 서강근육맨 (0) | 2022.07.12 |
[백준/c++] 20115번: 에너지 드링크 (0) | 2022.07.12 |