프로그래밍 공부/백준 (C++)
[C++/백준 1918번] 후위 표기식
Rocketbabydolls
2024. 10. 25. 15:02
#include <iostream>
#include <stack>
using namespace std;
int main()
{
string input;
cin >> input;
stack <char> s;
for (int i = 0; i < input.length(); i++)
{
if (input[i] >= 'A' && input[i] <= 'Z')
{
cout << input[i];
}
else if (input[i] == '(')
{
s.push(input[i]);
}
else if (input[i] == ')')
{
while (1)
{
if (s.top() == '(')
{
s.pop();
break;
}
else
{
cout << s.top();
s.pop();
}
}
}
else if(input[i] == '*' || input[i] == '/')
{
while(!s.empty() && (s.top() == '*' || s.top() == '/'))
{
cout << s.top();
s.pop();
}
s.push(input[i]);
}
else if (input[i] == '+' || input[i] == '-')
{
while(!s.empty() && (s.top() != '('))
{
cout << s.top();
s.pop();
}
s.push(input[i]);
}
}
while (!s.empty())
{
cout << s.top();
s.pop();
}
return 0;
}