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