후위식 연산
후위연산식이 주어지면 연산한 결과를 출력하는 프로그램을 작성하세요.
만약 3*(5+2)-9 을 후위연산식으로 표현하면 352+*9- 로 표현되며 그 결과는 21입니다.
▣ 입력설명
첫 줄에 후위연산식이 주어집니다. 연산식의 길이는 50을 넘지 않습니다.
식은 1~9의 숫자와 +, -, *, /, (, ) 연산자로만 이루어진다.
▣ 출력설명
연산한 결과를 출력합니다.
▣ 입력예제 1
352+*9-
▣ 출력예제 1
12
문제풀이
import sys
sys.stdin=open("input.txt", "r")
a=input()
stack=[]
tmp =0
for x in a:
if x.isdecimal():
stack.append(int(x))
else:
n1=stack.pop()
n2=stack.pop()
if x=="+":
stack.append(n2 + n1)
if x=="-":
stack.append(n2 - n1)
if x=="*":
stack.append(n2 * n1)
if x=="/":
stack.append(n2 / n1)
print(stack[0])
Hint
숫자는 stack에 무조건 넣고, 연산자를 만나는 경우 뒤에서부터 2개를 뺀다.
그리고 연산하고 그 연산을 stack에 다시 저장
'파이썬 알고리즘 > 스택, 큐, 해쉬, 힙' 카테고리의 다른 글
6. 응급실 (0) | 2022.11.05 |
---|---|
5. 공주 구하기(큐) (0) | 2022.11.05 |
3. 후위 표기식 만들기 (1) | 2022.11.05 |
2. 쇠 막대기 (0) | 2022.11.05 |
1. 가장 큰 수(스택) (0) | 2022.11.05 |