본문 바로가기

파이썬 알고리즘 풀이

40)후위식 연산

문제

후위연산식이 주어지면 연산한 결과를 출력하는 프로그램을 작성하기

 

조건

만약 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