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
'Algorithm (Python, Java, SQL) > Inflearn Study' 카테고리의 다른 글
[Python Algorithm] 자료구조(큐) - 응급실 (1) | 2023.03.23 |
---|---|
[Python Algorithm] 자료구조(큐) - 공주 구하기 (1) | 2023.03.23 |
[Python Algorithm] 자료구조(스택) - 후위표기식 만들기 (1) | 2023.03.22 |
[Python Algorithm] 자료구조(스택) - 쇠막대기 (1) | 2023.03.22 |
[Python Algorithm] 자료구조(스택) - 가장 큰 수 (1) | 2023.03.21 |