- toc {:toc}
ํ์ด
- isdigit() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด๋ก ๋ฐ์ ์ ๋ ฅ์ด ์ซ์์ธ์ง, ๋ถํธ์ธ์ง๋ฅผ ํ๋ณํ๋ค.
55-50+40 ๊ฐ ์ ๋ ฅ์ธ ๊ฒฝ์ฐ, 55-(50+40)์ ๊ฐ์ด -๊ฐ ๋์์ ๋, ๋ค์ ์๋ +๋ค์ ๊ดํธ๋ก ๋ฌถ์ด -๋ก ๋ง๋ค์ด์ฃผ๋ฉด ๋๋ค. ์ด๋ ์ฆ, -๊ฐ ๋์จ ๊ฒฝ์ฐ ๋ค์ ๋์ค๋ ๋ชจ๋ ์ซ์๋ค์ ๋นผ์ฃผ๋ฉด ๋๊ณ , -๊ฐ ๋์ค์ง ์์ ๊ฒฝ์ฐ์๋ ์ ๋ถ ๋ํด์ฃผ๋ฉด ๋๋ค.
55-50+40+30+20+10 ์ด๋ผ๋ฉด 55-(50+40+30+20+10) ์ด๋ฏ๋ก ์ ๋ถ ๋นผ์ฃผ๋ฉด ๋๋ค.
55-(50+40+30)-(20+10) ์ด๋ผ๋ฉด 55-(50+40+30)-(20+10) ์ด๋ฏ๋ก ์ค๊ฐ์ -๊ฐ ๋ค์ด๊ฐ๋ -๊ฐ ์ผ๋จ ํ ๋ฒ ๋ค์ด๊ฐ ์๋ค๋ฉด ๋ท ์ซ์๋ ์ ๋ถ ๋นผ์ฃผ๋ฉด ๋๋ค.
#include <bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
string input, num;
cin >> input;
int start = 0, temp=0, idx = 0, is_minus=0, res=0;
// - +++์ ๊ฒฝ์ฐ, -๊ฐ ์ฐ์๋๋ ๊ฒฝ์ฐ,
for(int i=0; i<input.length(); i++){
if(isdigit(input[i])){
temp = temp*10 + (input[i]-48);
}
else{
if(is_minus==1){
res -= temp;
}
else{
if(input[i] == '-'){
is_minus = 1;
res += temp;
}
else{
res += temp;
}
}
temp = 0;
}
}
if(is_minus) res -= temp;
else res += temp;
cout << res << '\n';
return 0;
}