728x90
1541๋ฒ: ์์ด๋ฒ๋ฆฐ ๊ดํธ
์ฒซ์งธ ์ค์ ์์ด ์ฃผ์ด์ง๋ค. ์์ ‘0’~‘9’, ‘+’, ๊ทธ๋ฆฌ๊ณ ‘-’๋ง์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ๊ฐ์ฅ ์ฒ์๊ณผ ๋ง์ง๋ง ๋ฌธ์๋ ์ซ์์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ์ํด์ ๋ ๊ฐ ์ด์์ ์ฐ์ฐ์๊ฐ ๋ํ๋์ง ์๊ณ , 5์๋ฆฌ๋ณด๋ค
www.acmicpc.net
โจ ๋ด ์์ค ์ฝ๋
#include<iostream>
#include <string>
#include <vector>
using namespace std;
int main(void) {
ios::sync_with_stdio(false);
cin.tie(NULL);
string s;
cin >> s;
string temp;
vector<string>vec;
//๋ฌธ์์ ์ซ์ ๋ถ๋ฆฌ
for (int i = 0; i < s.size(); i++) {
if (s[i] == '+' || s[i] == '-') {
vec.push_back(temp);
temp = s[i];
vec.push_back(temp);
temp = "";
}
else {
temp += s[i];
}
}
vec.push_back(temp);
int t=0,sum=0;
bool flag=false;
for (int i = 0; i < vec.size(); i++) {
//๋บ์
์ดํ์ ๋์ค๋ ๊ฒ๋ค์ ๋ํ ์ฒ๋ฆฌ
if (flag) {
if (vec[i] == "+") {
continue;
}
//๋บ์
์ด ๋ ๋์ค๋ฉด sum์๋ค๊ฐ ์ง๊ธ๊น์ง์ ์์t๋ฅผ ๋นผ์ฃผ๊ณ t ์ด๊ธฐํ
else if (vec[i] == "-") {
sum = sum - t;
t = 0;
}
//๋บ์
๋ค์ ๋์ค๋ ๊ฒ๋ค์ ์ ๋ถ ์์t์ ์ ์ฅํด๋
else {
t += atoi(vec[i].c_str());
}
}
//๋บ์
๋์ค๊ธฐ ์ด์ ์ ๋ํ ๊ฒ๋ค์ ์ฒ๋ฆฌ
else {
//sum์๋ค๊ฐ ๊ฐ๋ค์ ์ ๋ถ ๋ํด์ค
if (vec[i] == "+") {
sum += atoi(vec[i].c_str());
}
//๋บ์
์ด ๋์ค๋ฉด ํ๋๊ทธ๋ฅผ ๋ฐ๊พธ์ด์ค
else if (vec[i] == "-") {
flag = true;
}
else {
sum += atoi(vec[i].c_str());
}
}
}
//ํฉ๊ณ์๋ค๊ฐ ๋นผ๊ธฐ ์ดํ์ ๋์๋ ๊ฒ๋ค์ ์ ๋ถ ์ ์ฅํด๋ t๋ฅผ ๋นผ์ค๋ค
cout << sum - t;
system("PAUSE");
return 0;
}
๐ ๋ฌธ์ ํ์ด
๊ดํธ๋ก ๋ฌถ์ ์ ์๋ ์ซ์ ๋ฐ ๊ธฐํธ์ ๊ฐ์๊ฐ ์ ํด์ ธ ์์ง ์๊ธฐ๋๋ฌธ์
๊ทธ๋ฅ ๊ฐ๋จํ๊ฒ ๋บ์ ๊ธฐํธ ์ดํ์ ๋์ค๋ ๊ฒ๋ค์ ์ ๋ถ ( )๋ก ๋ฌถ์ด์ฃผ๋ฉด ๋๋ ๋ฌธ์ ์๋ค
โญ ๋ฌธ์ ํ์ด ๊ฒฐ๊ณผ

728x90