https://www.acmicpc.net/problem/1541
๋ฌธ์
์ธ์ค์ด๋ ์์์ +, -, ๊ทธ๋ฆฌ๊ณ ๊ดํธ๋ฅผ ๊ฐ์ง๊ณ ์์ ๋ง๋ค์๋ค. ๊ทธ๋ฆฌ๊ณ ๋์ ์ธ์ค์ด๋ ๊ดํธ๋ฅผ ๋ชจ๋ ์ง์ ๋ค.
๊ทธ๋ฆฌ๊ณ ๋์ ์ธ์ค์ด๋ ๊ดํธ๋ฅผ ์ ์ ํ ์ณ์ ์ด ์์ ๊ฐ์ ์ต์๋ก ๋ง๋ค๋ ค๊ณ ํ๋ค.
๊ดํธ๋ฅผ ์ ์ ํ ์ณ์ ์ด ์์ ๊ฐ์ ์ต์๋ก ๋ง๋๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์์ด ์ฃผ์ด์ง๋ค. ์์ ‘0’~‘9’, ‘+’, ๊ทธ๋ฆฌ๊ณ ‘-’๋ง์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ๊ฐ์ฅ ์ฒ์๊ณผ ๋ง์ง๋ง ๋ฌธ์๋ ์ซ์์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ์ํด์ ๋ ๊ฐ ์ด์์ ์ฐ์ฐ์๊ฐ ๋ํ๋์ง ์๊ณ , 5์๋ฆฌ๋ณด๋ค ๋ง์ด ์ฐ์๋๋ ์ซ์๋ ์๋ค. ์๋ 0์ผ๋ก ์์ํ ์ ์๋ค. ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ์์ ๊ธธ์ด๋ 50๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์ ๋ต์ ์ถ๋ ฅํ๋ค.
ํ์ด
๊ดํธ ๊ฐฏ์ ์ ํ์ด ์๋ค.
55-50+40
55-(50+40)
1 + 2 + 3 - 4 + 5 + 6 - 7 + 8
1 + 2 + 3 - (4 + 5 + 6) - (7 + 8)
์ด๋ฐ์์ผ๋ก ๊ทธ๋ฅ ๋ง์ด๋์ค ๋์ค๊ธฐ๋ง ํ๋ฉด ๊ทธ ๋ค์ ์ ์ฐํ๊ฒ ๊ดํธ๋ฅผ ๋ฃ์ด์ ๋ชจ๋ ์๋ฅผ ๋ง์ด๋์ค๋๊ฒ ํ ์ ์๋ค.
๋ฐ๋ผ์ ๋ง์ด๋์ค๊ฐ ๋์ค๊ธฐ ์ ๊น์ง๋ ์๋ค์ ๋ํ๊ณ , ๊ทธ ํ์๋ ๋ค ๋นผ์
๋ค๋ง ์ธํ์ด ๋ฌธ์์ด๋ก ๋ชฝ๋ ์ฃผ์ด์ง๊ธฐ๋๋ฌธ์..
์ด๊ฑฐ ์ฒ๋ฆฌํ๋๊ฒ ์ด์ง ์ฑ๊ฐ์ จ๋ค.
#include <iostream>
#include <string>
using namespace std;
int main() {
string input;
cin >> input;
int answer = 0;
bool isMinus = false;
string num = "";
char cur;
for(int i=0; i<=input.size(); i++) {
cur = input[i];
if(cur == '+' || cur == '-' || i == input.size()) {
if(isMinus) {
answer -= stoi(num);
} else {
answer += stoi(num);
}
num = "";
} else {
num += cur;
}
if(cur == '-') {
isMinus = true;
}
}
cout << answer;
return 0;
}
'๐ BOJ > Class 3' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ][C++] ๋ฐฑ์ค 18870๋ฒ: ์ขํ ์์ถ (0) | 2023.03.30 |
---|---|
[BOJ][C++] ๋ฐฑ์ค 17219๋ฒ: ๋น๋ฐ๋ฒํธ ์ฐพ๊ธฐ (0) | 2023.03.30 |
[BOJ][C++] ๋ฐฑ์ค 11727๋ฒ: 2xn ํ์ผ๋ง 2 (0) | 2023.03.27 |
[BOJ][C++] ๋ฐฑ์ค 9461๋ฒ: ํ๋๋ฐ ์์ด (0) | 2023.03.27 |
[BOJ][C++] ๋ฐฑ์ค 1260๋ฒ: DFS์ BFS (0) | 2023.03.24 |