백준 1918 : 후위 표기식(C++)

Chanyang Im·2022년 5월 30일
0

BAEKJOON

목록 보기
13/13
post-thumbnail

문제

풀이

풀이는 다시 올릴 예정입니다.

코드

#include <iostream>
#include <stack>
using namespace std;

int main() {
    string statement;
    cin >> statement;

    stack<char> oper;

    for(int i = 0; i < statement.length(); i++) {
        if('A' <= statement[i] && statement[i] <= 'Z') {
            cout << statement[i];
        }
        else if(statement[i] == '(') {
            oper.push(statement[i]);
        }
        else if(statement[i] == ')') {
            while(oper.top() != '(') {
                cout << oper.top();
                oper.pop();
            }
            oper.pop();
        }
        else if(statement[i] == '*' || statement[i] == '/') {
            while(!oper.empty() && (oper.top() == '*' || oper.top() == '/')) {
                cout << oper.top();
                oper.pop();
            }
            oper.push(statement[i]);
        }
        else if(statement[i] == '+' || statement[i] == '-') {
            while (!oper.empty() && oper.top() != '(') {
                cout << oper.top();
                oper.pop();
            }
            oper.push(statement[i]);
        }
    }

    while(!oper.empty()) {
        cout << oper.top();
        oper.pop();
    }
    cout << endl;

    return 0;
}
profile
안녕하세요!! 세상에 관심이 많은 공학자입니다!😆

0개의 댓글