[파이썬 알고리즘 문제풀이] - Section5 / 자료구조 활용(스택) -4

Chooooo·2023년 1월 31일
0

🎈 후위식 연산
후위연산식이 주어지면 연산한 결과를 출력하는 프로그램을 작성하세요.
만약 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 = "")

🎃 코멘트
반대로 이 문제는 연산자를 만날 때 스택에서 꺼내서 계산을 하면 된다.

profile
back-end, 지속 성장 가능한 개발자를 향하여

0개의 댓글