[๋ฌธ์ ]
55-50+40 ๊ฐ์ ์์ด ์ฃผ์ด์ก์ ๋, ๊ดํธ๋ฅผ ์๋ง๊ฒ ์ณ์ ์ต์ ํฉ์ ๊ตฌํ๋ ๋ฌธ์
์์ ๋ต์ 55-(50+40) = -35 ์ด๋ค.
[๋ฌธ์ ํ์ด]
๊ฒฝ์ฐ์ ์๋ฅผ ์ฌ๋ฌ๊ฐ ๋ง๋ค์ด์ ๊ณ์ฐํด๋ณด๋ฉฐ ๊ท์น์ ์ฐพ์์ผ ํ๋ค.
-๊ฐ ์์ ๋, -๊ฐ ๊ฐ์จ๋ฐ ๊ปด์์ ๋, -๊ฐ ๊ณ์ ์์ ๋, - + ๊ฐ ๋ฐ๋ณต ๋ ๋ ๋ฑ๋ฑ...
10+11-5+4 = 10+11-(5+4) = 12
1+10-15-10+20-1 = 1+10-(15+10)+20-(1) = 5
์ ๋๊ฐ์ง ๊ฒฝ์ฐ๋ฅผ ์ดํด ๋ณด๋ฉด, -๊ฐ ๋์๋ค๋ฉด ๊ทธ ๋ค๋ก +๊ฐ ๋์ค๊ฑฐ๋ ๋ง์ง๋ง index์ ๋ค๋ค๋ฅผ ๋๊น์ง ๊ดํธ๋ฅผ ์ณ์ ๋นผ์ฃผ๋ฉด ๋๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
[์ฝ๋]
1) ์์ string์ผ๋ก ๋ฐ๊ณ string index๋ฅผ ์ฌ์ฉํด์ ํ๊ธ์์ฉ ์ฒดํฌํด์ค๋ค.
2) ์ฒ์์ +๊ธฐํธ๊ฐ ๋ถ์ ์ซ์๊ฐ ๋ค์ด์ฌ ๊ฒ์ด๋ฏ๋ก number ๋ณ์์ ์ฐจ๊ณก์ฐจ๊ณก string ์ซ์๋ฌธ์๋ฅผ ์์์ค๋ค.
3) + , - ๊ธฐํธ๊ฐ ๋์ค๊ฑฐ๋ string ๋ง์ง๋ง index๋ผ๋ฉด ์ง๊ธ๊น์ง ์ ์ฅํด๋ number๋ฅผ result ๋ณ์์ ๋ํด์ค๋ค. (๋งจ์ฒจ์ ์์)
์ด ๋, stoi() ํจ์๋ฅผ ์ฌ์ฉํด์ string์ int๋ก ๋ฐ๊ฟ์ ๋ํด์ค๋ค.
3-1) -๊ธฐํธ๊ฐ ๋์๋ค๋ฉด,
๋ค์ +๋ string ๋ง์ง๋ง index์ ๋ค๋ค๋ฅผ ๋๊น์ง ๊ณ์ํด์ ๋นผ์ค์ผ ํ๋ฏ๋ก minus flag๋ฅผ true๋ก ์ฒดํฌํด์ค๋ค.
๊ทธ๋ฆฌ๊ณ - ๋ค์ +๊ฐ ๋์๋ค๋ฉด,
ํ์ฌ number๊น์ง๋ง ๋นผ์ฃผ๊ณ minus_flag๋ฅผ false๋ก ๋ฐ๊ฟ์ค์ ๋ค์ ๋์ค๋ ์ซ์๋ ๋ํ ์ค๋น๋ฅผ ํ๋ค.
3-2) +๊ธฐํธ๊ฐ ๋์๋ค๋ฉด, ๊ฑ ๋ํด์ค๋ค.
4) ๋ฐ๋ณต๋ฌธ index๊ฐ ๋ฌธ์์ด ๊ธธ์ด์ ๊ฐ๋ค๋ฉด ๋ง์ง๋ง ์ํฐ๋ถ๋ถ์ด๋ฏ๋ก ํ์ฌ๊น์ง ๊ตฌํ ๊ฐ์ ๋ง์ ๋ํ๊ฑฐ๋ ๋นผ์ฃผ๊ณ ๋๋ธ๋ค.
#include <iostream>
#include <string>
using namespace std;
int main() {
string str ="";
cin >> str;
string number = "";
int result = 0;
bool minus_flag = false;
for (int i = 0; i <= str.length(); i++) {//****i๋ฅผ str์ ๊ธธ์ด๊น์ง ํฌํจํด์ ๋ฐ๋ณตํด์ค์ผ ํจ.
if (str[i] == '+' || str[i] == '-' || i == str.length()) {
if (minus_flag) {
result -= stoi(number);
}
else {
result += stoi(number);
}
minus_flag = (str[i] == '-') ? true : false;
number = "";
}
else number += str[i]; //*****else ์์จ์ค์ ์ด์ํ๊ฒ ์ฐ์ฐํ ๊ฒ....
}
cout << result;
return 0;
}
'๐ Coding Test Study > Algorithm Problem' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++][Baekjoon][BFS ํ์] 2206๋ฒ ๋ฒฝ ๋ถ์๊ณ ์ด๋ํ๊ธฐ ์์ธ ํด์ค (0) | 2021.10.16 |
---|---|
[C++][BAEKJOON][์ํ] 1041๋ฒ ์ฃผ์ฌ์ ๋ฌธ์ ํ์ด & ๋ฐ๋ก (0) | 2021.10.11 |
[C++][BAEKJOON][Bruteforce] 2580๋ฒ ์ค๋์ฟ ํ์ด & ๋ฐ๋ก (0) | 2021.10.11 |
[C++][BAEKJOON][TREE&DP] 2533๋ฒ ์ฌํ๋ง ์๋น์ค(SNS) (0) | 2021.10.04 |
[BAEKJOON][C++][์๋ฎฌ๋ ์ด์ ] 16236๋ฒ ์๊ธฐ์์ด (0) | 2021.09.25 |