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
'백준 > C++' 카테고리의 다른 글
[C++] 백준 11725번 - 트리의 부모 찾기 (0) | 2024.06.27 |
---|---|
[C++] 백준 10101번 - 삼각형 외우기 (0) | 2024.06.26 |
[C++] 백준 2742번 - 기찍 N (0) | 2024.06.25 |
[C++] 백준 11047번 - 동전 0 (0) | 2024.06.23 |
[C++] 백준 2346번 - 풍선 터뜨리기 (0) | 2024.06.22 |