Algorithm (Python, Java, SQL)/Inflearn Study

[Python Algorithm] 자료구조(스택) - 후위식 연산

sanadoing_ 2023. 3. 22. 17:16
728x90

> 자료구조 활용 - 스택, 큐, 해쉬, 힙 (스택 편)

 

📖 문제 : 후위식 연산

후위연산식이 주어지면 연산한 결과를 출력하는 프로그램을 작성하세요.
만약 3*(5+2)-9 을 후위연산식으로 표현하면 352+*9- 로 표현되며 그 결과는 21입니다.

 

 

입력설명
첫 줄에 후위연산식이 주어집니다. 연산식의 길이는 50을 넘지 않습니다. 식은 1~9의 숫자와 +, -, *, /, (, ) 연산자로만 이루어진다.

 

출력설명
연산한 결과를 출력합니다.

 

입력예제 1
352+*9-

 

출력예제 1
12

 

 

import sys

s = input()
stack = []
a = b = 0

for x in s:
    if x.isdecimal():
    	stack.append(int(x))
    else:
    	if x == '+':
            b = stack.pop()
            a = stack.pop()
            stack.append(a+b)
    	elif x == '-':
            b = stack.pop()
            a = stack.pop()
            stack.append(a-b)
    	elif x == '*':
            b = stack.pop()
            a = stack.pop()
            stack.append(a*b)
    	elif x == '/':
            b = stack.pop()
            a = stack.pop()
            stack.append(a/b)
            
            
print(stack[0])

⭐️ Point ! ⭐️

  • stack.append(int(x))
    x는 문자라는거 ! 

 

 

출처

  • 인프런 : 파이썬 알고리즘 문제 풀이
 
728x90