← Back to List

1935번: 후위 표기식2 ↗

Solutions

Python 3
442 B | 442 chars
n = int(input())
s = input()
stack = []
L = [int(input()) for i in range(n)]

for i in s:
    if 'A' <= i <='Z':
        stack.append(L[ord(i)-65])
    else:
        a = stack.pop()
        b = stack.pop()
        if i == '+':
            stack.append(a+b)
        elif i == '-':
            stack.append(b-a)
        elif i == '/':
            stack.append(b/a)
        elif i == '*':
            stack.append(a*b)
print("%.2f" % (stack[0]))