💡문제접근
- 피연산자(숫자)이면 스택에 저장한다.
- 연산자(기호)면 필요한 수만큼의 피연산자(숫자)를 스택에서 꺼내 연산을 실행하고 연산 결과를 다시 스택에 저장한다.
💡코드(메모리 : 31256KB, 시간 : 40ms)
import sys
input = sys.stdin.readline
N = int(input())
formula = input().strip()
alphabet = {}
for i in range(65, 65+N):
num = int(input())
alphabet[chr(i)] = num
stack = []
for i in formula:
if i.isalpha():
stack.append(alphabet[i])
else:
first = stack.pop()
second = stack.pop()
if i == "*":
val = second * first
stack.append(val)
elif i == "/":
val = second / first
stack.append(val)
elif i == "+":
val = second + first
stack.append(val)
elif i == "-":
val = second - first
stack.append(val)
print('%.2f' % sum(stack))
💡소요시간 : 11m