코딩테스트 준비/[백준]
[백준] 1935번 - 후위표기식 2 파이썬
bled
2021. 5. 28. 20:37
https://www.acmicpc.net/problem/1935
1935번: 후위 표기식2
첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이
www.acmicpc.net
[코드]
import sys
N = int(sys.stdin.readline())
formula = sys.stdin.readline().strip()
d = dict()
for i in range(N):
tmp = int(sys.stdin.readline())
d[chr(i+65)] = tmp
stack = []
for f in formula:
if f in d:
stack.append(d[f])
else:
op2 = stack.pop()
op1 = stack.pop()
if f == '+':
stack.append(op1 + op2)
elif f == '-':
stack.append(op1 - op2)
elif f == '*':
stack.append(op1 * op2)
else:
stack.append(op1 / op2)
print("%.2f" % stack[0])
[주의]
자꾸 인덱스 에러가떴는데 문제를 잘못이해해서 틀린 것이었다.
A = 1
B = 2
C = 3
...
이렇게 반드시 숫자값이 1부터 순차적으로 주어지는 줄 알았으나 그렇지 않았다.