문제풀이/백준(Boj) 문제풀이

[백준][스택] - 1918. 후위 표기식(파이썬)

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

s = input()

stack = []
res = ""

for i in s:
    if i.isalpha():
        res += i
    else: #연산자인 경우
        if i == "(":
            stack.append(i)
        elif i == "+" or i == "-":
            while stack and stack[-1] != "(":
                res += stack.pop()
            stack.append(i)
        elif i == "*" or i == "/":
            while stack and (stack[-1] =="*" or stack[-1] == "/"):
                res += stack.pop()
            stack.append(i)
        elif i == ")":
            while stack and stack[-1] != "(":
                res += stack.pop()
            stack.pop() #잔여 (여는 괄호 제거를 해주어야 한다.

while stack:
    res += stack.pop()

print(res)

https://yeomylaoo.tistory.com/775

 

[자료구조 활용][스택, 큐, 해쉬, 힙] - 후위 표기식 만들기(스택)

s = input() stack = [] res = "" for i in s: if i.isdecimal(): res+= i else: #숫자가 아닌 경우 if i == "(": stack.append(i) elif i =="*" or i =="/": while stack and (stack[-1] == "*" or stack[-1]=="..

yeomylaoo.tistory.com

해당 문제에 관해서 풀이가 자세히 있습니다 다른점은 표현식이 숫자냐 문자냐에 차이로 isdecimal을 사용해 풀었는지 isalpha를 사용해 풀었는지의 차이입니다. :->