https://www.acmicpc.net/problem/1541
์ด ๋ฌธ์ ๋ ๋๊ฐ์ง๋ฅผ ์๊ฐํด์ผ ํ๋ค.
- ์ฒซ๋ฒ์งธ ์๋ ๋ฌด์กฐ๊ฑด ๋ํด์ฃผ๋ ์์ด๋ค.
- -๊ฐ ํ๋ฒ์ด๋ผ๋ ๋์ค๋ฉด ๊ทธ ๋ค์ ๋์ค๋ ์ซ์๋ ๋ชจ๋ ๋นผ์ค์ผ ํ๋ค.
์๋ฅผ๋ค๋ฉด ์์ 55-50+40์ด๋ผ๋ ์์ ๊ฐ์ ์ต์๋ก ๋ง๋ค๊ธฐ ์ํด์๋ 55-(50+40)์ด๋ ๊ฒ ๊ดํธ๋ฅผ ์น ๊ฒ์ด๋ค. ์ฆ ๊ฒฐ๋ก ์ ์ผ๋ก 55-50-40=-35๊ฐ ๋๋ค.
์ ๊ท์น 2๊ฐ๋ฅผ ์ ๋ ํ๋ฉฐ ์ฝ๋๋ฅผ ์ง๋ฉด ์๋์ ๊ฐ๋ค.
#include <iostream>
#include <vector>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
string ss;
cin >> ss;
int num = 0;
//์ฐ์ฐ์ ์ ์ฅํ๋ ๋ฒกํฐ, ์ซ์ ์ ์ฅํ๋ ๋ฒกํฐ ์ ์ธ
vector<int>oper;
vector<int> numbers;
for (int i = 0; i < ss.length(); i++) {
if (ss[i] == '-' || ss[i] == '+') {
if (ss[i] == '+') {
oper.push_back(1);
}
else {
oper.push_back(-1);
}
numbers.push_back(num);
num = 0;
}
else {
num = num * 10 + ss[i] - '0';
}
}
//์์์ค +๋ -๊ฐ ๋์ฌ ๋๋ง numbers๋ฒกํฐ์ ํ์ฌ num์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์
//๋ง์ง๋ง ์ซ์๋ ์ ์ฅ๋์ง ์์ ๋ฐ๋ก ์ ์ฅํด์ค
numbers.push_back(num);
bool isminus = false;
//์ฒซ๋ฒ์งธ ์๋ ๋ฌด์กฐ๊ฑด ๋ํด์ฃผ๊ธฐ ๋๋ฌธ์ ๋ฏธ๋ฆฌ ๋ํด์ค
//์ด๋ ๊ฒ ํ๋ ์ด์ ๋ ์ฐ์ฐ์ ๋ฒกํฐ๋ณด๋ค ์ซ์๋ฒกํฐ๊ฐ ์์ 1๊ฐ๋ฅผ ๋ ๊ฐ์ง๊ณ ์์ด
//๊ฐ์๋ฅผ ๋ง์ถฐ์ฃผ๊ธฐ ์ํจ
int ans = numbers[0];
numbers.erase(numbers.begin());
for (int i = 0; i < oper.size(); i++) {
if (oper[i] == -1) {
isminus = true;
}
if (isminus) {
ans -= numbers[i];
}
else {
ans += numbers[i];
}
}
cout << ans;
}
'์ฝ๋ฉํ ์คํธ > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค 1011] Fly me to the Alpha Centauri (C++) (0) | 2021.12.02 |
---|---|
[๋ฐฑ์ค 1065] ํ์ (C++) (0) | 2021.12.01 |
[๋ฐฑ์ค 1676]- ํฉํ ๋ฆฌ์ผ 0์ ๊ฐ์(C++) (0) | 2021.07.30 |
[๋ฐฑ์ค 1463] -1๋ก๋ง๋ค๊ธฐ(C++)/๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ (0) | 2021.07.29 |
[๋ฐฑ์ค 1620]-๋๋์ผ ํฌ์ผ๋ชฌ ๋ง์คํฐ ์ด๋ค์(C++)/์ด์งํ์, ์ซ์์ฌ๋ถ (0) | 2021.07.28 |
๋๊ธ