[Python] BOJ 1918번. 후위 표기식

1918번. 후위 표기식

문제 링크

풀이 코드

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
# 1918번. 후위 표기식


a = input().rstrip()

priority = {
    '*': 2,
    '/': 2,
    '+': 1,
    '-': 1,
    '(': 0
}
stack = []

for c in '('+a+')':
    # print('\n', stack)
    if 'A' <= c <= 'Z':
        print(c, end='')
    elif c == '(':
        stack.append(c)
    elif c == ')':
        while True:
            o = stack.pop()
            if o == '(':
                break
            print(o, end='')
    else:
        while stack[-1] != '(' and priority[c] <= priority[stack[-1]]:
            print(stack.pop(), end='')
        stack.append(c)

비고