From 3131c76169f6f510b200abbc76ccd2f53bc2049c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=84=EC=8A=B9=ED=98=B8?= <132066506+YIM2UL2ET@users.noreply.github.com> Date: Mon, 18 Mar 2024 10:36:51 +0900 Subject: [PATCH] =?UTF-8?q?11=EC=B0=A8=EC=8B=9C=20=EC=97=85=EB=A1=9C?= =?UTF-8?q?=EB=93=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- YIM2UL2ET/README.md | 1 + ...11\354\260\250\354\213\234 - BOJ 1918.cpp" | 43 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 "YIM2UL2ET/\354\212\244\355\203\235/11\354\260\250\354\213\234 - BOJ 1918.cpp" diff --git a/YIM2UL2ET/README.md b/YIM2UL2ET/README.md index c5601a7..170c23b 100644 --- a/YIM2UL2ET/README.md +++ b/YIM2UL2ET/README.md @@ -12,4 +12,5 @@ | 08차시 | 2024.03.04 | 재귀 | [BOJ 10994](https://www.acmicpc.net/problem/10994) | [BOJ 10994 풀이](https://github.com/AlgoLeadMe/AlgoLeadMe-7/pull/27) | | 09차시 | 2024.03.07 | 임의 정밀도 / 큰 수 연산 && 재귀 | [BOJ 1914](https://www.acmicpc.net/problem/1914) | [BOJ 1914 풀이](https://github.com/AlgoLeadMe/AlgoLeadMe-7/pull/29) | | 10차시 | 2024.03.10 | 스택 | [BOJ 1406](https://www.acmicpc.net/problem/1406) | [BOJ 1406 풀이](https://github.com/AlgoLeadMe/AlgoLeadMe-7/pull/31) | +| 11차시 | 2024.03.18 | 스택 | [BOJ 1918](https://www.acmicpc.net/problem/1918) | [BOJ 1918 풀이](https://github.com/AlgoLeadMe/AlgoLeadMe-7/pull/36) | --- diff --git "a/YIM2UL2ET/\354\212\244\355\203\235/11\354\260\250\354\213\234 - BOJ 1918.cpp" "b/YIM2UL2ET/\354\212\244\355\203\235/11\354\260\250\354\213\234 - BOJ 1918.cpp" new file mode 100644 index 0000000..0437fb6 --- /dev/null +++ "b/YIM2UL2ET/\354\212\244\355\203\235/11\354\260\250\354\213\234 - BOJ 1918.cpp" @@ -0,0 +1,43 @@ +#include +#include + +int main(void) +{ + char ch; + std::stack stk; + std::string res; + + ch = getchar(); + while (ch != '\n') { + if (ch == '+' || ch == '-') { + while(!stk.empty() && stk.top() != '(') { + res.push_back(stk.top()); + stk.pop(); + } + stk.push(ch); + } + else if (ch == '*' || ch == '/') { + if (!stk.empty() && (stk.top() == '*' || stk.top() == '/')) { + res.push_back(stk.top()); + stk.pop(); + } + stk.push(ch); + } + else if (ch == ')') { + while (!stk.empty() && stk.top() != '(') { + res.push_back(stk.top()); + stk.pop(); + } + if (!stk.empty()) stk.pop(); + } + else if (ch == '(') stk.push(ch); + else res.push_back(ch); + ch = getchar(); + } + while (!stk.empty()) { + res.push_back(stk.top()); + stk.pop(); + } + std::cout << res; + return 0; +} \ No newline at end of file