728x90
반응형
1. 문제
https://www.acmicpc.net/problem/1541
2. 풀이
첫 번째 '-' 연산자가 나타날 때까지는 모든 숫자들을 더하고,
첫 번째 '-' 연산자가 나타난 이후의 모든 숫자들은 빼주면 된다.
3. 코드
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string expression;
string number;
int answer;
bool isNegative = false;
// 1541
/*
첫 번째 '-' 연산자가 나타날 때까지는 모든 숫자들을 더하고,
첫 번째 '-' 연산자가 나타난 이후의 모든 숫자들은 빼주면 된다.
*/
int main() {
cin.tie(nullptr);
ios::sync_with_stdio(false);
cin >> expression;
number += expression[0];
for(int i=1; i<expression.size(); i++) {
if(expression[i] == '+') {
if(isNegative) {
answer -= atoi(number.c_str());
} else {
answer += atoi(number.c_str());
}
number = "";
}
if(expression[i] == '-') {
if(isNegative) {
answer -= atoi(number.c_str());
} else {
answer += atoi(number.c_str());
}
number = "";
isNegative = true;
}
else {
number += expression[i];
}
}
if(isNegative) {
answer -= atoi(number.c_str());
} else {
answer += atoi(number.c_str());
}
cout << answer;
return 0;
}
728x90
반응형
'💡 Problem Solving > Baekjoon' 카테고리의 다른 글
[백준 - 11286] 절댓값 힙 [C++] (0) | 2023.10.18 |
---|---|
[백준 - 1931] 회의실 배정 [C++] (0) | 2023.10.17 |
[백준 - 15829] Hashing [C++] (0) | 2023.10.14 |
[백준 - 13335] 트럭 [C++] (0) | 2023.10.14 |
[백준 - 20040] 사이클 게임 [C++] (0) | 2023.10.13 |