[김태원 알고리즘] 후위식 연산 (스택)
사용 언어: Python3
문제

풀이
내 풀이
def calc(a,b,symb):
    a, b = int(a), int(b) # str을 int로 변경
    if symb == '+':
        return a + b
    if symb == '-':
        return a - b
    if symb == '*':
        return a * b
    if symb == '/':
        return a // b
lst = list(input())
stack = []
for x in lst:
    if x not in '+-*/()':
        stack.append(x)
    else:
        a, b = stack.pop(), stack.pop()
        stack.append(calc(b,a,x))
print(''.join(map(str, stack)))
- 입력으로 주어지는 후위식에는 괄호가 없나..?
    
- 맞음!
 
 
다른 풀이
lst = input()
stack = []
for x in lst:
    if x.isdecimal():
        stack.append(int(x)) # ✅ 여기서 int로 집어넣기
    else:
        a, b = stack.pop(), stack.pop()
        if x == '+':
            stack.append(b+a)
        elif x == '-':
            stack.append(b-a)
        elif x == '*':
            stack.append(b*a)
        else:
            stack.append(b//a)
print(stack[0]) # ✅ 스택에는 한 개만 남을 것
💛 개인 공부 기록용 블로그입니다. 👻