본문 바로가기
PS/Baekjoon Online Judge

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

by kimyoungrok 2025. 2. 19.
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

'PS > Baekjoon Online Judge' 카테고리의 다른 글

[백준 10657] Cow Jog [Java]  (0) 2025.02.21
[백준 30329] Kick [Java]  (0) 2025.02.21
[백준 22943] 수 [Java]  (0) 2025.02.19
[백준 02436] 공약수 [Python]  (0) 2025.02.19
[백준 01934] 최소공배수 [Python]  (0) 2025.02.18