์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- Spring
- ๋ฌธ์์ด
- java
- ์ฐ์ ์์ ํ
- error
- thymeleaf
- Reversing
- ์ด๋ถ ํ์
- ์์ ์ ๋ ฌ
- CVE
- GCP
- ๋ถํ ์ ๋ณต
- dynamic debugging
- ๋งต
- ๊ตฌํ
- ์ฌ๊ท
- dfs
- c++
- JPA
- ๋์ ํฉ
- ์คํ
- ๊ทธ๋ฆฌ๋
- ๋ฐฑํธ๋ํน
- ์ต๋จ ๊ฒฝ๋ก
- ์๋ฎฌ๋ ์ด์
- OS
- ๋ฐ์ดํฌ์คํธ๋ผ
- web
- DP
- BFS
- Today
- Total
hades
[Baekjoon] 1918๋ฒ: ํ์ ํ๊ธฐ์ ๋ณธ๋ฌธ
๐ฅ ๋ฌธ์
https://www.acmicpc.net/problem/1918
๐ ์ค๊ณ
ํ์ ํ๊ธฐ์์ ๋ํ๋ด๋ ๋ฐ๋ ์คํ์ ์ฌ์ฉํ๋ค. A+B-C์ ๊ฒฝ์ฐ, ABC-+ ์ธ๋ฐ, ์ถ๋ ฅ ์์๋ฅผ ๊ณ ๋ คํ๋ฉด, ๋จผ์ ๋ค์ด์จ +๊ฐ ๋์ค์ ์ถ๋ ฅ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ํ๋ฒณ์ด๋ฉด, ๊ทธ๋ฅ ์ถ๋ ฅํ์ฌ ์คํ์๋ ๊ดํธ์ ์ฐ์ฐ์๋ง ๋ด๊ธฐ๊ฒ ํ๋ค.
๊ดํธ ๋ด๋ถ์ ์์ ๊ณ ๋ คํ๊ธฐ ์ํด, ํ์ฌ ๋ฌธ์๊ฐ '('์ด๋ฉด ์คํ์ ๊ทธ๋ฅ ์ถ๊ฐํ๊ณ , ')'์ด๋ฉด, ๊ดํธ ๋ด๋ถ์์ ์์ง ์ถ๋ ฅํ์ง ์์ ์ฐ์ฐ์๋ฅผ ์ถ๋ ฅํ๊ณ , '('๋ฅผ ์ ๊ฑฐํ์ฌ ๊ดํธ ๋ด๋ถ์ ์์ ๋๋ธ๋ค.
ํ์ฌ ๋ฌธ์๊ฐ ๊ดํธ๊ฐ ์๋ ์ฐ์ฐ์์ด๋ฉด, ๋ค์ ๊ดํธ๊ฐ ์ฌ ์ ์์ผ๋ฏ๋ก, ๋ง์ง๋ง์ ์คํ์ ์ถ๊ฐํด์ผ ํ๋ค. ๊ดํธ์ ๋ํ ์ฐ์ฐ์๋ฅผ ๋จผ์ ์ถ๋ ฅํ๊ณ , ๊ทธ ์ดํ์ ์ถ๋ ฅํด์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
๋ง์ง๋ง์ ์คํ์ ์ถ๊ฐํ๊ธฐ ์ ์ ์ฐ์ฐ์๊ฐ '*' ๋๋ '/'์ด๋ฉด, ์ ๋ด๋ถ์์ ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋์ผ๋ฏ๋ก, '*' ๋๋ '/'๋ฅผ ๋ชจ๋ ์ถ๋ ฅํ๋ค. ๊ทธ๋ฆฌ๊ณ ์คํ์ ์ถ๊ฐํ๋ค.
๋ง์ง๋ง์ ์คํ์ ์ถ๊ฐํ๊ธฐ ์ ์ ์ฐ์ฐ์๊ฐ '+' ๋๋ '-'์ด๋ฉด, ์ ๋ด๋ถ์์ ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋ฎ์ผ๋ฏ๋ก, ์คํ์ ์๋ ๋ชจ๋ ์ฐ์ฐ์๋ฅผ ์ถ๋ ฅํ๋ค. ๊ทธ๋ฆฌ๊ณ ์คํ์ ์ถ๊ฐํ๋ค.
๐ ํ์ด
#include <iostream>
#include <vector>
#include <stack>
#include <algorithm>
using namespace std;
string eq;
stack<char> s;
int main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cin >> eq;
for (int i = 0; i < eq.length(); i++) {
if (eq[i] >= 'A' && eq[i] <= 'Z') {
cout << eq[i];
}
else if (eq[i] == '(') {
s.push(eq[i]);
}
else if (eq[i] == ')') {
while (!s.empty() && s.top() != '(') {
cout << s.top();
s.pop();
}
s.pop();
}
else if (eq[i] == '*' || eq[i] == '/') {
while (!s.empty() && (s.top() == '*' || s.top() == '/')) {
cout << s.top();
s.pop();
}
s.push(eq[i]);
}
else if (eq[i] == '+' || eq[i] == '-') {
while (!s.empty() && (s.top() != '(')) {
cout << s.top();
s.pop();
}
s.push(eq[i]);
}
}
while (!s.empty()) {
cout << s.top();
s.pop();
}
return 0;
}
'๐ PS > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 2096๋ฒ: ๋ด๋ ค๊ฐ๊ธฐ (0) | 2024.08.10 |
---|---|
[Baekjoon] 1987๋ฒ: ์ํ๋ฒณ (0) | 2024.08.09 |
[Baekjoon] 11501๋ฒ: ์ฃผ์ (0) | 2024.08.07 |
[Baekjoon] 11675๋ฒ: ํ์๋จธ์ (0) | 2024.08.06 |
[Baekjoon] 1916๋ฒ: ์ต์๋น์ฉ ๊ตฌํ๊ธฐ (0) | 2024.08.06 |