<소스코드>
#include <iostream>
#include <string>
using namespace std;
int main(void){
string str;
cin >> str;
int result = 0;
string temp = "";
bool minus = false;
for (int i = 0; i <= str.size(); i++){
//연산자일 경우
if (str[i] == '+' || str[i] == '-' || str[i] == '\0'){
if (minus){
result -= stoi(temp);
}else{
result += stoi(temp);
}
temp = ""; //초기화
if (str[i] == '-'){ minus = true;}
continue;
}
temp += str[i];
}
cout << result << endl;
}
- 변수&함수
string str : 입력값
int result : 정답값
string temp : 임시값
bool minus : 뺄셈을 할지 말지 정해주는 변수
- 알고리즘
1) 그냥 숫자가 나올 경우 : temp에 문자열 합치기로 더해준다.
2) 연산자가 나온다면
- minus == false : result에 temp를 int형 +
- minus == true : result에 temp를 int형 -
그리고 temp를 초기화(다음 숫자 받아야쥥)
3) 만약 '-' 나온 경우 : minus = true로 변경
- 배운점
stoi() : string to int
- 아쉬운점&느낀점
첫번째 문제는 문제 이해를 잘 못했고, 그래도 뭔가 재귀적인 느낌이 있어서 정말 어려웠다. 다음 번 상황을 생각하면서 해야 하는 문제들이 취약하다. 설명도 잘 못하겠고 이 문제를 통해서 실력을 앞으로 키워야 겠다.