🎈 후위식 연산
후위연산식이 주어지면 연산한 결과를 출력하는 프로그램을 작성하세요.
만약 3(5+2)-9 을 후위연산식으로 표현하면 352+9- 로 표현되며 그 결과는 21입니다.
▣ 입력설명
첫 줄에 후위연산식이 주어집니다. 연산식의 길이는 50을 넘지 않습니다.
식은 1~9의 숫자와 +, -, *, /, (, ) 연산자로만 이루어진다.
▣ 출력설명
연산한 결과를 출력합니다.
▣ 입력예제 1
352+*9-
▣ 출력예제 1
12
import sys
# sys.stdin = open("input.text", "rt")
# input = sys.stdin.readline
data = list(input())
res = 0
stack = []
def cal(a,b,oper):
a = int(a)
b = int(b)
if oper == "+":
res = a+b
elif oper == "-":
res = a-b
elif oper == "*":
res = a*b
else:
res = a/b
return res
for x in data:
if x.isdecimal():
stack.append(x)
else:
b = stack.pop()
a = stack.pop()
stack.append(cal(a,b,x))
for x in stack:
print(x, end = "")
🎃 코멘트
반대로 이 문제는 연산자를 만날 때 스택에서 꺼내서 계산을 하면 된다.