자료구조와 알고리즘/개인적인 코딩테스트 관련 풀이

[자료구조 활용][스택, 큐, 해쉬, 힙] - 후위 연산(스택)

얄루몬 2022. 7. 17. 02:53

#해당 연산자 앞에 있는 2개의 숫자를 피연산자로 계산하고 다시 append해준다.
s = input()
stack = []

for i in s:
    if i.isdecimal():
        stack.append(int(i))
    else:
        if i == "+":
            b = stack.pop()
            a = stack.pop()
            stack.append(a+b)
        elif i == "-":
            b = stack.pop()
            a = stack.pop()
            stack.append(a-b)
        elif i == "*":
            b = stack.pop()
            a = stack.pop()
            stack.append(a*b)
        elif i == "/":
            b = stack.pop()
            a = stack.pop()
            stack.append(a/b)
print(stack[0])
  • 이 문제의 경우 숫자를 모두 stack에 넣어준 뒤 진행한다.
  • stack에 있는 숫자는 연산자를 기준으로 앞, 앞앞에 있는 숫자들을 피연산자로 사용한다.
  • 이때 피연산자들을 연산자로 계산이 끝나면 다시 append해주어 진행한다.
  • 모든 계산이 끝나면 stack을 출력해주면 된다.