[알고리즘/백준] 1935: 후위 표기식2(python)

후위 표기식이 뭔지 몰라서 찾아봤다... 스택에 순서대로 넣어주다가 연산자가 나오면 피연산자 두개를 pop해서 계산 후 다시 스택에 넣어주는 방식으로 풀었다.

N = int(input())
a = input()
num_list = [int(input()) for _ in range(N)]
stack = []
for i in a:
    if 'A' <= i <= 'Z':
        stack.append(num_list[ord(i) - ord('A')])

    else:
        n2 = stack.pop()
        n1 = stack.pop()
        if i == '+':
            stack.append(n1 + n2)
        elif i == '-':
            stack.append(n1 - n2)
        elif i == '*':
            stack.append(n1 * n2)
        elif i == '/':
            stack.append(n1 / n2)
print('%.2f' % stack[0])

좋은 웹페이지 즐겨찾기