후위 표기식(ABC+DE/-)을 중위 표기식(A+BC-D/E)으로 바꿔야한다.
주어진 자료를 재정리 해야한다.
Stack은 주어진 자료를 재정리 할 때 주로 사용되는 방법이다.
피연산자를 Stack에 넣고 연산자를 만나면 가장 위에 있는 값 두 개를 꺼내서 계산 후 다시 Stack에 넣는다.
import sys
count = int(input())
num = list(input())
num_list = [0] * count
for i in range(count):
num_list[i] = int(sys.stdin.readline())
stack = []
for i in num:
if i.isalpha():
stack.append(num_list[ord(i) - ord("A")])
else:
b = stack.pop()
a = stack.pop()
if i == "*":
c = a * b
elif i == "/":
c = a / b
elif i == "+":
c = a + b
elif i == "-":
c = a - b
stack.append(c)
print("%.2f" %stack[-1])
ord("A") = 65
ord("A") - ord("A") = 0
ord("B") = 66
ord("B") - ord("A") = 1
ord("C") = 67
ord("C") - ord("A") = 2
이렇게 아스키코드를 이용해서 0 ~ 개수 끝까지 인덱스를 구해서 list에 대입한다.