티스토리 뷰

PS

BOJ 1935

plr3270 2021. 11. 14. 21:04

후위표기식은 계산하기 매우 쉽다.

식을 앞에서부터 읽으면서 수가 나오면 push, 기호가 나오면 스택의 가장 위에있는 두 수를 pop해서 계산

 

 

소스코드


import string

AtoZ = string.ascii_uppercase
dict1 = {}
n = int(input())
st = input()
stack = []
for i in range(n):
    dict1.update({AtoZ[i]:int(input())})
for i in range(len(st)):
    if st[i].isalpha():
        stack.append(dict1[st[i]])
    else:
        b = stack.pop()
        a = stack.pop()
        if st[i] == '+':
            stack.append(a+b)
        elif st[i] == '-':
            stack.append(a-b)
        elif st[i] == '*':
            stack.append(a*b)
        else:
            stack.append(a/b)
print("{:.2f}".format(stack[0]))

'PS' 카테고리의 다른 글

BOJ 2304  (0) 2021.11.14
BOJ 1725 (스택)  (0) 2021.11.14
BOJ 1918  (0) 2021.11.07
BOJ 2110  (0) 2021.11.07
BOJ 11055  (0) 2021.11.07
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함