문제
후위연산식이 주어지면 연산한 결과를 출력하는 프로그램을 작성하기
조건
만약 3*(5+2)-9 을 후위연산식으로 표현하면 352+*9- 로 표현되며 그 결과는 21입니다
제한사항
첫 줄에 후위연산식이 주어집니다.
연산식의 길이는 50을 넘지 않습니다.
식은 1~9의 숫자와 +, -, *, /, (, ) 연산자로만 이루어진다.
연산한 결과를 출력합니다.
문제풀이
a=list(input())
stack=[]
res=0
for x in a:
if x.isdecimal():
stack.append(int(x))
else:
if x=='+':
n1=stack.pop()
n2=stack.pop()
stack.append(n2+n1)
elif x=='-':
n1=stack.pop()
n2=stack.pop()
stack.append(n2-n1)
elif x=='*':
n1=stack.pop()
n2=stack.pop()
stack.append(n2*n1)
elif x=='/':
n1=stack.pop()
n2=stack.pop()
stack.append(n2/n1)
print(stack[0])'파이썬 알고리즘 풀이' 카테고리의 다른 글
| 42)Anagram (0) | 2021.11.02 |
|---|---|
| 41)단어 찾기 (0) | 2021.11.02 |
| 39)후위표기식 만들기 (0) | 2021.11.01 |
| 38)교육과정 설계 (0) | 2021.11.01 |
| 37)응급실 (0) | 2021.11.01 |