PS/Baekjoon Online Judge

[백준 01935] 후위 표기식2 [Python]

kimyoungrok 2025. 2. 19. 14:57
728x90

문제

https://www.acmicpc.net/problem/1935

 


풀이

스택을 사용해 후위표현식을 구현하면 된다.

우선, 수식의 문자에 대응하는 숫자를 매핑해주자.

   num = {}
    for i in range(N):
        num[chr(ord("A") + i)] = int(input())

연산 기호를 입력 받기 전 까지 모든 숫자를 스택에 저장해주고,

연산 기호를 입력받으면 스택에 저장해둔 두 수를 꺼내 계산을 한 뒤 다시 스택에 저장하면 된다.

이 과정을 반복하면 스택에는 후위 표현식에 대한 계산 결과가 남는다.

    # Solve
    stack = []
    for f in F:
        if f.isalpha():
            stack.append(num[f])
        else:
            B = stack.pop()
            A = stack.pop()
            stack.append(eval(str(A) + f + str(B)))
    
    # Output
    print("%.2f" % stack[0])

소스코드

https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/easy/01935.py

728x90